AMDとrequire.jsでTypescriptを使用していますが、モジュールをロードした後に実行される出力コードにtypescriptコンパイラがありません。AMDとrequire.jsのTypescript
これはmain.ts
です:
import { foo } from './bar';
foo('world');
これはbar.ts
です:
export function foo(name: string) {
alert('Hello ' + name);
}
私は、次のtsconfig.json
ファイルでこれをコンパイルします。
{
"compilerOptions": {
"alwaysStrict": true,
"module": "amd",
"outFile": "client.js",
"target": "es5"
},
"files": [
"main.ts"
]
}
そして、このように私のHTMLでそれを含めます:
<script data-main="client/client.js" src="/static/require.js"></script>
しかし、生成されたJavaScriptコードは次のようになります。
define("bar", ["require", "exports"], function (require, exports) {
"use strict";
function foo(name) {
alert('Hello ' + name);
}
exports.foo = foo;
});
define("main", ["require", "exports", "bar"], function (require, exports, bar) {
"use strict";
bar.foo('world');
});
すべては私が直接main
モジュール内のコードを実行したいという事実から除き、罰金です。だから、最後の定義は
define(["require", "exports", "bar"], ...
の代わりに、現在
define("main", ["require", "exports", "bar"], ...
、私はちょうどmain
モジュールをロードするためにJavaScriptで記述された第三のスクリプトを必要とするべきである、と私はそれは悪いスタイルがmain
を持つように考えますモジュールを再利用可能なコードとして使用します。
typescriptコンパイラでモジュール定義の代わりにmain.ts
を実行可能な定義として出力するにはどうすればよいですか?
'/// <参照パス=" [あなたのインポートファイル] "/>'をモジュールで使用しないでください。それらを単にインポートします。 –