Rrule: Importar em arquivo datilografado

Criado em 4 jul. 2016  ·  9Comentários  ·  Fonte: jakubroztocil/rrule

Ei pessoal,
Gostaria de saber como posso importar o arquivo rrule.js do typescript:
import 'rrule';
Não parece funcionar porque module.exports é avaliado como verdadeiro, portanto, mesmo o escopo global não é preenchido.
Quando tento qualquer outro tipo de importação como:
import * as rrule from 'rrule';
Eu entendo isso ao compilar:
Error TS2307: Cannot find module 'rrule'.

Comentários muito úteis

Executar npm install @types/rrule resolveu o problema para mim. Eu fui capaz de importar assim
import { RRule, RRuleSet } from "rrule";

Todos 9 comentários

Estou tendo o mesmo problema. Já encontrou uma solução?

Veja este exemplo:

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

Consegui usar o RRule em meu arquivo ts desta forma (depois de incluir rrule.js em minha página index.html):

// Arquivo form.ts
declare var RRule: qualquer;

módulo myapp.controllers {

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

}

Espero que isso ajude alguém.

O que eu faço nesses casos é definir uma Digitação.
Adicionar um arquivo à digitação -> rrule.d.ts

conteúdo do arquivo rrule.d.ts:

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

você pode estender suas propriedades lá, se quiser.

em seguida, vincule o rrule.d.ts a index.d.ts por exemplo (eu normalmente agrupo todos os meus d.ts em 1 arquivo referenciando-os lá)

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

depois disso você pode usar

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

sem definir o
declare var RRule: any;
em todos os lugares novamente.

Atenciosamente!

Executar npm install @types/rrule resolveu o problema para mim. Eu fui capaz de importar assim
import { RRule, RRuleSet } from "rrule";

@ dennis2k e como você resolveu isso com rrulestr?

@uncledent , só fui capaz de fazer isso usando require

var rrulestr = require('rrule').rrulestr

@ dennis2k Obrigado por sua resposta, mas isso não pode ser usado em Angular4 :(

Eu poderia fazer isso no Angular2 / 4, não é bonito, mas funciona:
declare function require(name:string); var rrulestr = require('rrule').rrulestr;

Acho que esse problema está morto. Atualize se for necessário mais suporte!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

shavenwalrus picture shavenwalrus  ·  7Comentários

mapidemic picture mapidemic  ·  7Comentários

espen picture espen  ·  10Comentários

jimmywarting picture jimmywarting  ·  9Comentários

espen picture espen  ·  11Comentários