4

typescript を数時間いじっていますが、モジュールと一緒にノックアウトをインポートする方法がわかりません。

タイプスクリプトがなければ、私はそれを必要としますが、それdefine(["require", "exports", "knockout" ...],function(... , ko)を生成するためのタイプスクリプトを取得できませんでした。

jquery とノックアウトの違いがわかりません。$ は正常に動作しますが、ko は未定義です。

///<reference path="../knockoutd.d.ts" />
///<reference path="../jquery.d.ts" />
import dl = module("DataLayer");
import vm1 = module("AppBarViewModel");
import vm2 = module("Nav2ViewModelCommander");
import vm3 = module("IdentityViewModel");
export class AppViewModel {
...
}

結果:

    define(["require", "exports", "DataLayer", "AppBarViewModel", "Nav2ViewModelCommander",  "IdentityViewModel"], function(require, exports, __dl__, __vm1__, __vm2__, __vm3__) {
    var dl = __dl__;

    var vm1 = __vm1__;

    var vm2 = __vm2__;

    var vm3 = __vm3__;

アップデート

///<amd-dependency path="knockout" />

define(["require", "exports", "DataLayer", "AppBarViewModel", "Nav2ViewModelCommander", "IdentityViewModel", "knockout"], function(require, exports, __dl__, __vm1__, __vm2__, __vm3__) {
    var dl = __dl__;

    var vm1 = __vm1__;

    var vm2 = __vm2__;

    var vm3 = __vm3__;
4

4 に答える 4

2

TypeScript に AMD の依存関係をインポートせずに、結果の JavaScript に AMD の依存関係をコンパイラに含めるには、次のコードを使用できます。

/// <amd-dependency path="path/to/knockout/js" />

この機能は文書化されていませんが、非常に便利です。

于 2013-04-08T09:41:57.730 に答える
1

問題は、KnockoutJS が AMD 環境で定義されていないことwindow.koです (つまり、RequireJS が関係している場合)。したがって///<amd-dependency />、適切なモジュールとして KnockoutJS を使用するか、使用する必要があります。

私は、DefiniteTyped からAMD バージョンのknockout.d.tsimport ko = module('knockout')を起草しました。knockout.d.tsknockout.amd.d.tsの両方を取得していることを確認してください。

于 2013-05-22T00:42:15.317 に答える