Rrule: Importer dans un fichier tapuscrit

Créé le 4 juil. 2016  ·  9Commentaires  ·  Source: jakubroztocil/rrule

Salut les gars,
Je me demandais comment puis-je importer le fichier rrule.js à partir de tapuscrit :
import 'rrule';
Ne semble pas fonctionner car module.exports est évalué à true, donc même la portée globale n'est pas renseignée.
Lorsque j'essaie tout autre type d'importation comme :
import * as rrule from 'rrule';
J'obtiens ceci lors de la compilation :
Error TS2307: Cannot find module 'rrule'.

Commentaire le plus utile

L'exécution de npm install @types/rrule résolu le problème pour moi. J'ai ensuite pu importer comme ça
import { RRule, RRuleSet } from "rrule";

Tous les 9 commentaires

J'ai le même problème. Avez-vous déjà trouvé une solution ?

Voir cet exemple :

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

J'ai pu utiliser RRule dans mon fichier ts comme ceci (après avoir inclus rrule.js dans ma page index.html):

// Fichier form.ts
déclarer var RRule : any ;

module myapp.controllers {

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

}

J'espère que cela aide quelqu'un.

Ce que je fais dans ce cas, c'est de définir un Typing.
Ajouter un fichier aux saisies -> rrule.d.ts

contenu du fichier rrule.d.ts :

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

vous pouvez y étendre leurs propriétés si vous le souhaitez.

puis liez le rrule.d.ts à index.d.ts par exemple (je regroupe normalement tous mes d.ts dans 1 fichier les référençant là-bas)

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

après cela, vous pouvez utiliser

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

sans définir le
declare var RRule: any;
partout encore.

Meilleures salutations!

L'exécution de npm install @types/rrule résolu le problème pour moi. J'ai ensuite pu importer comme ça
import { RRule, RRuleSet } from "rrule";

@dennis2k et comment l'avez-vous résolu avec rrulestr ?

@uncledent, je n'ai pu que cela en utilisant exiger

var rrulestr = require('rrule').rrulestr

@dennis2k Merci pour votre réponse, mais cela ne peut pas être utilisé dans Angular4 :(

Je pourrais le faire de cette façon dans Angular2/4, pas joli, mais ça marche :
declare function require(name:string); var rrulestr = require('rrule').rrulestr;

Je pense que ce problème est mort. Veuillez mettre à jour si plus d'assistance est nécessaire !

Cette page vous a été utile?
0 / 5 - 0 notes