やあみんな、
typescriptからrrule.jsファイルをインポートするにはどうすればよいのでしょうか。
import 'rrule';
module.exports
がtrueと評価されているため、機能していないようです。そのため、グローバルスコープも設定されていません。
次のような他の種類のインポートを試すと、次のようになります。
import * as rrule from 'rrule';
私はコンパイル時にこれを取得します:
Error TS2307: Cannot find module 'rrule'.
私は同じ問題を抱えています。 修正を見つけたことがありますか?
この例を参照してください。
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());
}
}
}
これが誰かを助けることを願っています。
この場合、私が行うことは、タイピングを定義することです。
タイピングにファイルを追加する-> 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そして
@uncledent私は
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";