web-dev-qa-db-ja.com

Typescriptを使用しているときに「JQuery型にプロパティが存在しない」構文エラーを停止するにはどうすればよいですか?

私のアプリケーションでは、jQueryの1行のみを使用しています。

$("div.printArea").printArea();

しかし、これはTypeScriptエラーを与えています:

プロパティ 'printArea'はタイプJQueryに存在しませんか?

誰かがこのエラーの表示を止める方法を教えてもらえますか?

64
Alan2

<any>にキャストするか、jqueryタイピングを拡張して独自のメソッドを追加できます。

 (<any>$("div.printArea")).printArea();

//または、独自のカスタムメソッドを追加します(これは、カスタムプラグインの一部として自分で追加されていると仮定)

interface JQuery {
    printArea():void;
}
161
PSL

これは最も読みやすいソリューションだと思います:

($("div.printArea") as any).printArea();
28
Eldamir

にキャストできます

(<any>$('.selector') ).function();

例:jqueryを使用した日付ピッカーの初期化

(<any>$('.datepicker') ).datepicker();
8
vishnu

あなたの例では、これを追加します:

interface JQuery{
    printArea():void;
}

編集:おっと、バサラトは正しいです。なぜそれがコンパイルされていると思ったのかわかりませんが、この答えを更新しました。

3
AlexB

PrintAreaはjQueryプラグインであるため、jquery.d.tsには含まれていません。

Jquery.printArea.ts定義ファイルを作成する必要があります。

プラグインの完全な定義ファイルを作成する場合、 DefinitelyTyped に送信できます。

2
Albin Sunnanbo

次のように書くこともできます。

let elem: any;
elem = $("div.printArea");
elem.printArea();
1
iqqmuT