私はASP.Net MVCアプリケーションのフロントエンドのために専らtypescriptで作業しようとしています。これはモジュールなしでは現在動作しており、依存関係の追跡は煩雑になっています。それで、RequireJSを導入し、TypescriptのAMDサポートを利用するときです。typescsコンパイラフラグは、エラーとしてシム定義を必要とします。それを修正するには?
私はこれについてたくさん読んでおり、私は非常に近いと思います。しかし、私はtypesScriptのimport文でrequireJS設定で定義されているシムモジュールを見つけることができないという問題を抱えています。したがって、typescriptがモジュールの名前をJSコードのrequire関数に渡すだけなら、すべてがうまくいくはずです。しかし、それはエラーを投げるだけではありません。ですから、これらのJSシムのインポートステートメントをどうやって書くのですか?ここで
は一例です: app.ts
import g = require("Api/greeter");
import $ = require("jquery");
import respond = require("respond");
var greeter = new g.Greeter("#content");
greeter.start();
が、これは、ページのメインTSで、グリーターは、そのページのビューモデルであると仮定します。しかし、私はjqueryとブートストラップがページ上に必要であることを知っています。
///
私はjQueryのを必要とするブートストラップとブートストラップを必要と反応している注意事項:私は私のrequireJSの設定のために、このセットアップを持っています。だから、app.tsに応答する必要があり、それは応答(ブートストラップとjQuery)を引き込まなければなりません。
私はapp.tsに冗長なrequire( "jQuery")があることを知っています。これは説明のためのものです。つまり、その行はうまくいきます - TSはjQueryを有効なモジュール名として認識し、結果のコンパイル済みのJSファイルに入れます。しかし、TSは、モジュール名として「応答」を認識していないと私はコンパイルエラーを取得:
Cannot find module 'respond'.
私は私のファイルを持っている。このように配置された:
Scripts
->Api
--> Greeter.ts
-> App
--> App.ts
-> libs
--> jQuery-3.1.1.js
--> bootstrap.js
--> respond.js
私はときにjQuery、私はよくやったと思いましたどのように私は応答するか、私は仕事に引き込む必要がある他の純粋なJSライブラリを取得するのですか? TSのドキュメントでは、require()の引数は、コンパイラが型情報を取得する方法であるため、JSファイルへの有効なパスであると考えられています。しかし、そうであれば、なぜjQueryは私が定義した方法で動作しますか?それはrespond.jsと変わりません。
おかげ グレッグ
私自身の質問にちょうど答えたかもしれません。ここで重要な情報は、jQuery.d.tsとrequire.d.tsをインストールしたことですが、応答用に.d.tsファイルを取得していないことです。 私はノックアウトを含むように進めようとしたので、これを理解しました。 VSはノックアウトと同じエラーを返すようになっていた。それから私はknockout.d.tsをインストールし、突然私のエラーは消えました。 –