Rrule: 在打字稿文件中导入

创建于 2016-07-04  ·  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/

我能够像这样在我的 ts 文件中使用 RRule(在我的 index.html 页面中包含 rrule.js 之后):

// 文件 form.ts
声明 var RRule: any;

模块 myapp.controllers {

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

}

希望这可以帮助某人。

在这种情况下,我所做的是定义一个 Typing。
将文件添加到typings -> 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 个文件中,在那里引用它们)

索引.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 等级

相关问题

zeluspudding picture zeluspudding  ·  11评论

grigio picture grigio  ·  7评论

mapidemic picture mapidemic  ·  7评论

maconfr picture maconfr  ·  6评论

espen picture espen  ·  11评论