2016-11-11 14 views
0

私は、独自の* .d.tsファイルを持たないTypescriptで使用しようとしているJQueryプラグイン(mixItUp)があります。TypescriptでJQueryプラグインを使用する

typescriptでどのように動作させることができますか?

私は自分mixItUp.d.tdsは、次の内容のファイルを作りました:

:私は、次のコードを使用しています、私はmixItUpを使用しようとしているモジュールでは

interface JQuery 
{ 
    mixItUp():any; 
} 

$('#mySelector').mixItUp(); 

これはうまくコンパイルされ、私はmixItUpのインテリセンスを取得します。何とかそれを参照することなくmixItUp.d.tsファイルを取得しました。

このモジュールの前に、jquery、次に非typescript(Pure js)のmixItUpライブラリがロードされているので、その時点でjqueryとmixitupの両方が実際に存在することがわかります。

私はページをロードするときしかし、私は次のようなエラーメッセージが出ます:.D *私は私が参照する古い方法であることを理解して何を使っているように見える探してるガイドのほとんど

$(...).mixItUp is not a function(…) 

を.tsファイル。

誰かが、typescriptでJQueryプラグインを使用する正しい方法と、可能ならばtypescript以外のライブラリを参照する方法について説明してください(私はこの技術が似ていると仮定します)。

ありがとうございました。

+0

がmixItUpのjavascriptのです(あなたが使用しているjQueryのバージョンは、プラグインによってサポートされていることを与えられた)正常に動作する必要がありますページのファイルですか? –

+0

@ Radio-はいです。私はそれが私が参照していた "純粋なjs"ライブラリであることを明確にするために私の質問を編集しました。 – Steviebob

+0

これが役立つかどうかわからない場合は、こちらのページで問題を再現できるかどうかを確認してください:https://jsfiddle.net/dmqr7szq/ – skav

答えて

0

実行時に起こっている場合、TSはJSにコンパイルされるため、Typescriptが原因ではない可能性が最も高いです。 TS自体はあなたのライブラリに関する知識がなく、あなたのインターフェイスによって情報が与えられているだけなので、その呼び出しをそのままコンパイルします(デベロッパーコンソールなどの出力を見るだけで実証できます)。

だからあなたのコードが実行される前にmixItUpは、正しくセットされていることを確認します(しかし、jQueryの後に)、それは

+0

$( '#mySelector')。私はそれをコメントアウトし、私の.tsファイル内のコメントを外すと、エラーが発生します。 おそらく、非タイスクリプト・ライブラリを一般的に持ち込み/参照する方法を誰かが説明できれば、その答えにつながるかもしれませんか? – Steviebob

+0

結果に影響を与える要因はたくさんあります。 TSの構築方法に関する詳細情報を提供し、ページにJSファイルを含めることができればうれしいです。ページの内容(または少なくともJSファイルが含まれる部分)も役立ちます。 – Riiverside

+0

一般にTSライブラリにJSライブラリを追加するときに行うべき魔法はありません。実際には特別なことをする必要はありません。 TSはJSにコンパイルされ、完全に互換性があります。あなたのコードにライブラリの権利が使用されている場合は、コード補完とコンパイル時間チェックの利点を得るために、自作のタイピングをプロジェクトに追加することができます。それ以外は完全にオプションです。 – Riiverside

関連する問題