質問:jqueryを依存関係として含むようにAMDサポートを使用してTypeScriptモジュールにjqueryをインポートする方法はありますか?jQueryとその他のサードパーティ製ライブラリをTypeScriptにモジュールを使用してモジュールとしてインポートする
キーはimportステートメントを取得することで、モジュールをdefineステートメント(以下を参照)に依存させます。
define(["require", "exports", 'dataservice', 'jquery', 'knockout'],
function(require, exports, __ds__, $ , ko) {
...
}
)
詳細: 私はjqueryの(および他のサードパーティのライブラリ)をインポートするAMDと活字体モジュールなど。目的は、それらをrequire
リストの依存関係として表示させることです。しかし、これを行うTypeScriptを作成する唯一の方法は、import
ステートメントを持つように見えます。また、インポートするにはモジュールをインポートする必要があります。しかし、... jqueryモジュールは指摘できません。 to。回避策
:
- 私はrequire.jsためmain.jsで.d.tsとプリロードjqueryのを参照することができますが、それは、すべてのサードパーティのライブラリをプリロードを意味します。ひどいわけではありませんが、JavaScriptやAMDですでにできることを利用していないので、理想的ではありません。
- 各サードパーティライブラリのモジュールを作成してラップすることができますが、$。$のようなものがあります。どちらがさらに悪いのですか?IMO(とIriskはそれぞれのモジュールコードを間違って記述して同期を外しています)。
今のところ、main.jsにjqueryをプリロードしています。しかし、これは理想的ではありません。モジュールを持たないノックアウトやバックボーンなどのライブラリであれば、そうする必要があります。
私が迷っているものはありますか?
更新/明確化:
私はまた、ライブラリの中で依存関係を設定してシムを使用することができます。しかし、これはまだサードパーティのものをプリロードします。例:
require.config({
baseUrl: '../',
paths: {
'jquery': 'lib/jquery-1.7.2',
'underscore': 'lib/underscore'
},
shim: {
jquery: {
exports: '$'
},
underscore: {
exports: '_'
}
}
});
それは価値があるので、私はmain.js(またはそれに相当するもの)の中にすべてロードしています。それは一種の醜いですが、それは動作します。 –
ケン - それは基本的に私がサードパーティ製のものをプリロードすることでやっていることです。私たちがJavaScriptでもっとうまくやっていることが分かったら、ちょっと汚いと感じます。 –
合意。 TSのモジュールシステムはまだ少し残っているようです - 他の言語のように:-)。うまくいけば改善が来ているはずです。 –