2016-10-19 11 views
0

私はJSPMを使用しているプロジェクトを持っています。 私はFoundationJSを使用していますが、これはJQueryを必要とします。TypeScriptとJSPMでJQueryをインポート

私はこのようなjQueryのを輸入した

import jQuery from 'jquery'; 

し、このようにそれを使用して:

jQuery(document).foundation(); 

とすべてが良かった - jQueryのJSPMから輸入されていました。

しかし私はその後、TypeScriptの使用に切り替えることにしました。

活字体はエラーで来ているjQueryの 『

がどのように私は活字体で、このJSPMモジュールをインポートすることができます"

モジュールを見つけることができませんか』? 私はSystemJSも使用していますが、それが役立つかどうかはわかりません!

答えて

1

typescriptでjQueryやFoundationJSのようなjavascriptライブラリを使用する場合は、typescriptに十分な情報を入力するだけで、コードを型チェックする必要があります。

これは通常、typescriptでコンパイルするソースファイルとともに、javascriptライブラリ用にtype declarationsを含めることによって行われます。 typescriptです2.0の場合

、あなたは@types NPMの接頭辞の下にjQueryとFoundationJSの型宣言を見つけることができます。

npm install @types/foundation 

はtypescriptですコンパイラが自動的にそれを見つけるだろうnode_modules/@typesで、FoundationJSとその依存関係、jQueryのための宣言をインストールします。

しかし、これらの宣言はjQueryをインポートする方法と互換性がありません。

import jQuery = require('jquery'); 

そして、それがコンパイルされます。それはあなたが事前ES6モジュールと互換性typescriptです固有の構文を使用するようにインポートを変更する必要がありますように見えます。次に適切なモジュール形式を選択する必要があります(--modulecompiler optionsにあります)。 typescriptはデフォルトでCommonJSを生成します。これは、SystemJSの問題ではありません(es6モジュール形式を使用する場合は、import ... = require構文で排除されます)。

@typesからの宣言は、実行時に使用する実際のバージョンと互換性のない別のバージョンのjQueryまたはFoundationJS用である可能性があります。次に、別の場所で正しい宣言を見つけたり、自分自身で記述したりする必要があります。

+0

多くのありがとうございます。 NPM @タイプのものは、最終的に私を軌道に戻しました。私はTypeScriptとタイプ定義の両方のバージョンを持っていたところで多くの問題を抱えていましたが、最終的にそこにいました!私は、jqueryのimport jQueryを使って宣言を変更する必要はありませんでした。ステートメント。私は今、最新かつ最高のもの全てを手に入れているからかもしれません! –

関連する問題