0

残念ながら、現在のプロジェクトではjQueryが必要な古いライブラリを使用する必要があります。これらの起動は、ライフサイクルフックセクション "ngAfterViewChecked"で行われます。私はselectpicker前にライン//noinspection TypeScriptUnresolvedFunctionを追加しましたAngular2&Typescript:エラーTS2339: 'ElementPinder'タイプの 'selectpicker'プロパティが存在しません

ngAfterViewChecked() { 
    if (this.agency) { 
     //noinspection TypeScriptUnresolvedFunction 
     $('.selectpicker').selectpicker(); 
    } 
    } 

:当該コードブロックである

Error TS2339: Property 'selectpicker' does not exist on type 'ElementFinder'.

:事実のため、活字体は、適切なタイミングでそれを解決できないこと、それはエラーを出力ししかし、それは役に立たなかった。

私たちには事前設定されたビルドシステムがあり、このようなエラーが発生して私たちを「跳ね返す」ためです。どうすればこの問題を取り除くことができますか?

答えて

0

jQueryの型定義を拡張する必要があります。これは、.selectpicker()メソッドを定義したカスタム.d.tsとjQueryネームスペースをマージすることを意味します。助けのためのマニュアルを参照してください:

https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html

をお使いのjQueryの定義ファイルに応じて、これはうまくいくかもしれない:

interface JQuery { 
    selectpicker:() => void; 
} 
+0

を私はすでに変数$を宣言 'と回避策ました:任意の;は、'、それも動作しますしかし、なぜ私はTypeScriptにそのようなエラーを無視させることができないのだろうかと思います。なぜ '// noinspection'は動かないのですか? 2番目の質問:私が使うことができる既存の '.d.ts'ファイルはありますか? Selectpickerは単なる例であり、宣言する必要がある関数の量があります。 ..ありがとうございます。 –

+0

TS <2.0を使用している場合は、ここで見つけることができます:http://definitelytyped.org/ '// noinspection'という意味ではありません。 TypeScriptを選択した場合、静的な型とエラーが必要です。そうでなければJavaScriptだけです。 –

関連する問題