アプリケーションでjQueryを1行だけ使用しています。
$("div.printArea").printArea();
しかし、これは私にTypescriptエラーを与えています:
プロパティ 'printArea'はタイプJQueryに存在しませんか?
このエラーの表示を停止する方法を教えてもらえますか?
回答:
<any>
jqueryタイピングにキャストまたは拡張して、独自のメソッドを追加できます。
(<any>$("div.printArea")).printArea();
//または独自のカスタムメソッドを追加します(これがカスタムプラグインの一部として自分で追加されたと仮定します)
interface JQuery {
printArea():void;
}
interface JQuery
外部モジュールでその方法を試し、関数パラメーターをJQueryタイプとして定義し、それを別のファイルから呼び出そうとすると、TypeScriptは、無関係なJQueryという名前の2つのタイプがあると文句を言います。
declare global { ... }
、インターフェース宣言の周りに必要であることに気づきました。
あなたの例では、これを追加します:
interface JQuery{
printArea():void;
}
編集:おっと、basaratは以下で正しいです。なぜコンパイルされていると思ったのかわかりませんが、この回答を更新しました。
$.inviewport(el)
Opsケース$('selector').printArea
$('selector').printArea
コンパイルしますか?私はそうは思いません。$.printArea
ただし、コンパイルされます。あなたはとても礼儀正しいので、犯罪は取られたり意図されたりしていません:)
printAreaはjQueryプラグインであるため、jquery.d.tsには含まれていません。
jquery.printArea.ts定義ファイルを作成する必要があります。
プラグインの完全な定義ファイルを作成する場合は、DefinitelyTypedに送信することをお勧めします。
Error:(44, 23) TS2339: Property 'printArea' does not exist on type 'ElementFinder'.