3

Typescriptに変換しようとしているJavaScriptコードがいくつかあります。

おそらく、typescriptはJavaScriptのスーパーセットですが、以下にコンパイラエラーがあります。koライブラリをtypescriptにインポートしなかったとすると、次のコードをどのように変換しますか?

(function(ko, viewModels){
    viewModels.MyViewModel = function(){
        //stuff in here
    }
}(ko, window.viewModels = window.viewModels || {}));

参考までに、これはTypeScriptでの私の試みでした

module viewModels {

    export class PartDetailsViewModel {
        public bar: string;
             constructor (){
                 this.bar = ko.foo(); //<-- compiler error, "ko" does not exist in current scope
             }
        }
    }
}
4

1 に答える 1

8

実行時に提供される外部メンバーを宣言できるTypeScriptの「AmbientDeclarations」を調べてください。したがって、あなたの例では、以下を追加するとコンパイラが幸せになります。

declare var ko;

ちなみに、私はこの投稿にもあなたを導きたいと思います:https ://stackoverflow.com/a/12692174/806003

Stenは、宣言で型を指定して静的型付けを取得できるように、基本的なノックアウトインターフェイスを提供しました。コメントでもこれを見つけました:https ://gist.github.com/3833509

于 2012-10-07T18:24:00.557 に答える