Rrule: Impor dalam file TypeScript

Dibuat pada 4 Jul 2016  ·  9Komentar  ·  Sumber: jakubroztocil/rrule

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'.

Komentar yang paling membantu

Menjalankan npm install @types/rrule memecahkan masalah bagi saya. Saya kemudian dapat mengimpor seperti ini
import { RRule, RRuleSet } from "rrule";

Semua 9 komentar

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!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat