Эй, ребята,
Мне было интересно, как мне импортировать файл rrule.js из машинописного текста:
import 'rrule';
Кажется, не работает, потому что module.exports
оценивается как истина, поэтому даже глобальная область не заполняется.
Когда я пробую любой другой вид импорта, например:
import * as rrule from 'rrule';
Я получаю это при компиляции:
Error TS2307: Cannot find module 'rrule'.
У меня такая же проблема. Когда-нибудь нашли исправление?
См. Этот пример:
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;
Я думаю, что этот вопрос мертв. Пожалуйста, обновите, если требуется дополнительная поддержка!
Самый полезный комментарий
Запуск
npm install @types/rrule
решил проблему для меня. Затем я смог импортировать вот такimport { RRule, RRuleSet } from "rrule";