私はこれがtsは持っている場合はモジュール:活字体AMDの実装
export function say(){
console.log("said");
}
と私は、TSクライアントから非常に簡単にそれを使用することができますamdのオプションでそれをコンパイルします。
import foo = module("tsmodule")
foo.say();
export var x = 123;
私は、TSモジュールと同等のjavascriptがあれば
しかし:
define(["require", "exports"], function(require, exports) {
function say() {
console.log("said");
}
exports.say = say;
})
を簡単にそれを使用する方法はありません。最も簡単な解決策は:
// of course you can use .d.ts for requirejs but that is beside the point
declare var require:any;
// will fail with error module has not been loaded yet for context
// http://requirejs.org/docs/errors.html#notloaded
var useme = require("jsmodule")
useme.say();
export var x = 123;
import foo = module("tsmodule")
foo.say();
エラーが原因http://requirejs.org/docs/errors.html#notloadedの失敗します。 "jsmodule"は生成されたtypescriptのdefine呼び出しに渡されなかったためです。
私は
- を持つ2つの回避策は、インポート/エクスポートを使用していない(言語機能が失われた)
- 使用は([])が必要です(まだ[必要に依存して何かを(エクスポートすることはできません。 ])コール)
制限:https://github.com/basarat/typescript-requirejsがあります。別の方法がありますか?そうでない場合は、あなたはここに投票することができます:https://typescript.codeplex.com/workitem/948 :)
明らかに文書化されていない機能を述べることになるで宣言ファイルを提供し、私のTSCバージョン0.9.0アルファでは動作しません。アンインストール/バージョン0.8にインストールしましょう – basarat
Aww撮影、彼らは0.9でこれを削除しましたか?私は0.8.1.1を使用しています。 – thomaux
0.8.3で動作します。しかし0.9.0アルファにはありません – basarat