Rrule: Импорт в файл машинописного текста

Созданный на 4 июл. 2016  ·  9Комментарии  ·  Источник: jakubroztocil/rrule

Эй, ребята,
Мне было интересно, как мне импортировать файл rrule.js из машинописного текста:
import 'rrule';
Кажется, не работает, потому что module.exports оценивается как истина, поэтому даже глобальная область не заполняется.
Когда я пробую любой другой вид импорта, например:
import * as rrule from 'rrule';
Я получаю это при компиляции:
Error TS2307: Cannot find module 'rrule'.

Самый полезный комментарий

Запуск npm install @types/rrule решил проблему для меня. Затем я смог импортировать вот так
import { RRule, RRuleSet } from "rrule";

Все 9 Комментарий

У меня такая же проблема. Когда-нибудь нашли исправление?

См. Этот пример:

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

Мне удалось использовать RRule в моем ts-файле следующим образом (после включения rrule.js на мою страницу index.html):

// Файл form.ts
объявить var RRule: any;

module myapp.controllers {

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

}

Надеюсь, это кому-то поможет.

Что я делаю в этом случае, так это определяю набор текста.
Добавить файл в наборов -> rrule.d.ts

содержимое файла rrule.d.ts:

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

вы можете расширить их свойства там, если хотите.

затем свяжите rrule.d.ts с index.d.ts для каждого примера (я обычно группирую все мои d.ts в 1 файл, ссылаясь на них там)

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

после этого вы можете использовать

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

без определения
declare var RRule: any;
снова везде.

С наилучшими пожеланиями!

Запуск npm install @types/rrule решил проблему для меня. Затем я смог импортировать вот так
import { RRule, RRuleSet } from "rrule";

@ dennis2k, а как вы решили это с помощью rrulestr?

@uncledent Я смог это сделать только с помощью require

var rrulestr = require('rrule').rrulestr

@ dennis2k Спасибо за ответ, но его нельзя использовать в Angular4 :(

Я мог бы сделать это в Angular2 / 4, не очень красиво, но работает:
declare function require(name:string); var rrulestr = require('rrule').rrulestr;

Я думаю, что этот вопрос мертв. Пожалуйста, обновите, если требуется дополнительная поддержка!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги