Rrule: In Typoskriptdatei importieren

Erstellt am 4. Juli 2016  ·  9Kommentare  ·  Quelle: jakubroztocil/rrule

Hallo Leute,
Ich habe mich gefragt, wie ich die Datei rrule.js aus dem Typskript importieren kann:
import 'rrule';
Scheint nicht zu funktionieren, da module.exports als wahr ausgewertet wird, sodass nicht einmal der globale Gültigkeitsbereich aufgefüllt wird.
Wenn ich eine andere Art von Import versuche, wie zum Beispiel:
import * as rrule from 'rrule';
Beim Kompilieren bekomme ich folgendes:
Error TS2307: Cannot find module 'rrule'.

Hilfreichster Kommentar

Das Ausführen von npm install @types/rrule das Problem für mich gelöst. Ich konnte dann so importieren
import { RRule, RRuleSet } from "rrule";

Alle 9 Kommentare

Ich habe das gleiche Problem. Haben Sie jemals eine Lösung gefunden?

Siehe dieses Beispiel:

http://jqfaq.com/how-to-use-external-js-in-typescript/

Ich konnte RRule in meiner ts-Datei so verwenden (nachdem ich rrule.js in meine index.html-Seite aufgenommen hatte):

// Datei form.ts
var RRule deklarieren: beliebig;

Modul myapp.controllers {

class myClass {
    constructor() {
        var rule = RRule.fromString('FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13');
        console.log(rule.toText());
    }
}

}

Hoffe das hilft jemandem.

Was ich in diesen Fällen mache, ist ein Typing zu definieren.
Datei zu Eingaben hinzufügen -> rrule.d.ts

Inhalt der Datei rrule.d.ts:

declare var RRule: any; declare var RRuleSet: any; declare var rrulestr: any;

Sie können ihre Eigenschaften dort erweitern, wenn Sie möchten.

dann verknüpfen Sie die rrule.d.ts mit index.d.ts pro Beispiel (normalerweise gruppiere ich alle meine d.ts in einer Datei und referenziere sie dort)

index.d.ts:
/// <reference path="globals/rrule/rrule.d.ts" />

danach kannst du verwenden

RRule.fromString('FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13');

ohne die zu definieren
declare var RRule: any;
überall wieder.

Mit freundlichen Grüßen!

Das Ausführen von npm install @types/rrule das Problem für mich gelöst. Ich konnte dann so importieren
import { RRule, RRuleSet } from "rrule";

@dennis2k und wie hast du es mit rrulestr gelöst?

@uncledent Ich konnte dies nur mit require

var rrulestr = require('rrule').rrulestr

@dennis2k Vielen Dank für Ihre Antwort, aber dies kann in Angular4 nicht verwendet werden :(

Ich könnte das in Angular2/4 so machen, nicht schön, aber funktioniert:
declare function require(name:string); var rrulestr = require('rrule').rrulestr;

Ich denke, dieses Thema ist tot. Bitte aktualisieren Sie, wenn weitere Unterstützung benötigt wird!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen