Hai teman-teman,
Saya bertanya-tanya bagaimana saya bisa mengimpor file rrule.js dari TypeScript:
import 'rrule';
Tampaknya tidak berfungsi karena module.exports
dievaluasi benar, sehingga cakupan global pun tidak diisi.
Ketika saya mencoba jenis impor lain seperti:
import * as rrule from 'rrule';
Saya mendapatkan ini saat kompilasi:
Error TS2307: Cannot find module 'rrule'.
Saya mengalami masalah yang sama. Pernah menemukan perbaikan?
Lihat contoh ini:
http://jqfaq.com/how-to-use-external-js-in-typescript/
Saya dapat menggunakan RRule di file ts saya seperti itu (setelah memasukkan rrule.js di halaman index.html saya):
// File form.ts
mendeklarasikan var RRule: any;
modul myapp.controllers {
class myClass {
constructor() {
var rule = RRule.fromString('FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13');
console.log(rule.toText());
}
}
}
Semoga ini bisa membantu seseorang.
Apa yang saya lakukan dalam kasus ini adalah untuk mendefinisikan Mengetik.
Tambahkan file ke pengetikan -> rrule.d.ts
isi file rrule.d.ts:
declare var RRule: any;
declare var RRuleSet: any;
declare var rrulestr: any;
Anda dapat memperluas properti mereka di sana jika Anda mau.
kemudian tautkan rrule.d.ts ke index.d.ts per contoh (saya biasanya mengelompokkan semua d.ts saya dalam 1 file yang merujuknya di sana)
indeks.d.ts:
/// <reference path="globals/rrule/rrule.d.ts" />
setelah itu Anda dapat menggunakan
RRule.fromString('FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13');
tanpa mendefinisikan
declare var RRule: any;
di mana-mana lagi.
Salam!
Menjalankan npm install @types/rrule
memecahkan masalah bagi saya. Saya kemudian dapat mengimpor seperti ini
import { RRule, RRuleSet } from "rrule";
@dennis2k dan bagaimana Anda menyelesaikannya dengan rrulestr?
@uncledent Saya hanya bisa menggunakan ini membutuhkan
var rrulestr = require('rrule').rrulestr
@dennis2k Terima kasih atas jawaban Anda, tetapi ini tidak dapat digunakan di Angular4 :(
Saya bisa melakukan ini dengan cara ini di Angular2/4, tidak cantik, tetapi berfungsi:
declare function require(name:string);
var rrulestr = require('rrule').rrulestr;
Saya pikir masalah ini sudah mati. Harap perbarui jika diperlukan lebih banyak dukungan!
Komentar yang paling membantu
Menjalankan
npm install @types/rrule
memecahkan masalah bagi saya. Saya kemudian dapat mengimpor seperti iniimport { RRule, RRuleSet } from "rrule";