Rrule: Importar en archivo mecanografiado

Creado en 4 jul. 2016  ·  9Comentarios  ·  Fuente: jakubroztocil/rrule

Hola chicos,
Me preguntaba cómo puedo importar el archivo rrule.js desde mecanografiado:
import 'rrule';
No parece funcionar porque module.exports se evalúa como verdadero, por lo que incluso el ámbito global no se completa.
Cuando intento cualquier otro tipo de importación como:
import * as rrule from 'rrule';
Obtengo esto al compilar:
Error TS2307: Cannot find module 'rrule'.

Comentario más útil

Ejecutar npm install @types/rrule solucionó el problema. Entonces pude importar así
import { RRule, RRuleSet } from "rrule";

Todos 9 comentarios

Tengo el mismo problema. ¿Alguna vez has encontrado una solución?

Vea este ejemplo:

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

Pude usar RRule en mi archivo ts así (después de incluir rrule.js en mi página index.html):

// Archivo form.ts
declare var RRule: any;

módulo myapp.controllers {

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

}

Espero que esto ayude a alguien.

Lo que hago en estos casos es definir un Typing.
Agregue un archivo a mecanografiado -> rrule.d.ts

contenido del archivo rrule.d.ts:

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

puede ampliar sus propiedades allí si lo desea.

luego vincule el rrule.d.ts a index.d.ts por ejemplo (normalmente agrupo todos mis d.ts en 1 archivo haciendo referencia a ellos allí)

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

después de eso puedes usar

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

sin definir el
declare var RRule: any;
en todas partes de nuevo.

¡Atentamente!

Ejecutar npm install @types/rrule solucionó el problema. Entonces pude importar así
import { RRule, RRuleSet } from "rrule";

@ dennis2k y ¿cómo lo has resuelto con rrulestr?

@uncledent Solo pude hacer esto usando require

var rrulestr = require('rrule').rrulestr

@ dennis2k Gracias por su respuesta, pero esto no se puede usar en Angular4 :(

Podría hacer esto de esta manera en Angular2 / 4, no es bonito, pero funciona:
declare function require(name:string); var rrulestr = require('rrule').rrulestr;

Creo que este problema está muerto. ¡Actualice si necesita más soporte!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

grigio picture grigio  ·  7Comentarios

mapidemic picture mapidemic  ·  7Comentarios

marcoancona picture marcoancona  ·  22Comentarios

michaelkrog picture michaelkrog  ·  9Comentarios

fatshotty picture fatshotty  ·  5Comentarios