やっています
$(function(){
alert('Hello');
});
Visual Studioでこのエラーが表示されています:(TS) Cannot find name '$'.
。TypeScriptでjQueryを使用するにはどうすればよいですか?
やっています
$(function(){
alert('Hello');
});
Visual Studioでこのエラーが表示されています:(TS) Cannot find name '$'.
。TypeScriptでjQueryを使用するにはどうすればよいですか?
回答:
ほとんどの場合、jQuery用のTypeScript宣言ファイルをダウンロードしてjquery.d.ts
、プロジェクトに含める必要があります。
オプション1:@typesパッケージをインストールします(TS 2.0+に推奨)
package.jsonファイルと同じフォルダーで、次のコマンドを実行します。
npm install --save-dev @types/jquery
次に、コンパイラーはjqueryの定義を自動的に解決します。
オプション2:手動でダウンロードする(非推奨)
オプション3:タイピングを使用する(Pre TS 2.0)
タイピングを使用している場合は、次のように含めることができます。
// 1. Install typings
npm install typings -g
// 2. Download jquery.d.ts (run this command in the root dir of your project)
typings install dt~jquery --global --save
定義ファイルを設定した後$
、目的のTypeScriptファイルにエイリアス()をインポートして、通常どおりに使用します。
import $ from "jquery";
// or
import $ = require("jquery");
tsconfig.jsonで--allowSyntheticDefaultImports
-addを使用"allowSyntheticDefaultImports": true
してコンパイルする必要がある場合があります。
パッケージもインストールしますか?
jqueryがインストールされていない場合は、おそらくnpmを介して依存関係としてインストールする必要があります(ただし、常にそうであるとは限りません)。
npm install --save jquery
import * as $ from 'jquery'
Error TS1192 Module '"jquery"' has no default export.
FOR Visual Studioのコード
私にとってうまくいくのは、index.htmlの<script>タグを介して標準のJQueryライブラリを確実にロードすることです。
走る
npm install --save @types/jquery
JQuery $関数がすべての.tsファイルで使用できるようになりました。他のインポートは必要ありません。
javascript declare var jquery: any; declare var $: any;
私はあなたがJQueryのためにTypescriptタイピングを必要とするかもしれないと信じています。Visual Studioを使用していると言ったので、Nugetを使用して取得できます。
https://www.nuget.org/packages/jquery.TypeScript.DefinitelyTyped/
Nuget Package Manager Consoleのコマンドは
Install-Package jquery.TypeScript.DefinitelyTyped
更新:コメントに記載されているように、このパッケージは2016年以降更新されていません。ただし、https://github.com/DefinitelyTyped/DefinitelyTypedの Githubページにアクセスして、タイプをダウンロードできます。ライブラリのフォルダーに移動し、index.d.ts
そこにファイルをダウンロードします。それをプロジェクトディレクトリの任意の場所にポップすると、VSはすぐにそれを使用する必要があります。
Angular CLI V7の場合
npm install jquery --save
npm install @types/jquery --save
jqueryがangular.json->スクリプトにエントリがあることを確認してください
...
"scripts": [
"node_modules/jquery/dist/jquery.min.js"
]
...
tsconfig.app.jsonに移動し、「types」にエントリを追加します
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": ["jquery","bootstrap","signalr"]
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
アップデート2019:
Davidの回答はより正確です。
Typescriptは、DefinitelyTyped Repoを使用して、ライブラリ開発にTypescriptを使用しないサードパーティベンダーライブラリをサポートしています。
これらのタイプのタイプチェックでtsLintがオンの場合、コンポーネントでjquery
/ を宣言する必要があり$
ます。
たとえば
declare var jquery: any;
declare var $: any;
declare
キーワードが使用されるためです。しかし、それらがに存在する場合は、vscodeに型付けについて伝えることができますnode_modules
。そのため、型付けをインストールするとインテリセンスで役立ちますが、バニラwebpackプロジェクトの場合、declare
キーワードプロジェクトの翻訳が失敗します。人々を混乱させないために、答えから自分の声明を削除しました。
import JQuery from 'jquery'; declare var $: JQuery;
ます。これが機能するかどうかはわかりません。
Webアプリケーション(Reactなど)でjqueryを使用したい場合、jqueryはすでにロードされています <script src="jquery-3.3.1.js"...
ウェブページでできること:
npm install --save-dev @types/query
and the use it with:
let $: JQueryStatic = (window as any)["jQuery"];
したがって、jqueryをもう一度(でnpm install --save jquery
)ロードする必要はありませんが、Typescriptのすべての利点があります。
TypeScriptとjQueryの構成手順は次のとおりです。
これにより、jQueryの型サポートは、インターネットにあるほとんどの記事よりもうまく機能します。( 私は信じている。 )
最初:
npm install jquery --save
npm install @types/jquery --save-dev
2番目(非常に非常に非常に重要!!!):
import jquery = require("jquery");
// this helps TypeScript to understand jQuery best !!! otherwise It will confused .
const $: JQueryStatic = jquery;
その後、あなたはそれを楽しむことができます:
$(document).ready(function () {
$('btn').click(function () {
alert('I am clicked !')
}
}
さらっとしたなめらかさ!!!
declare global { interface Window { $ :JQueryStatic; } }
、yourTypeDeclaration.d.tsに追加するだけです。そして、ちゃんと考えて、【ウィンドウ】に$がマウントされているかチェックする必要があります。などimport $ = require('jquery'); window.$ = $ ;
、またはjQuery【$】が外部スクリプトタグによってマウントされています。
import $ = require('jquery') ; window.$ = $;
。(プロジェクトの開始点でこれを初期化するのが最善です。またsdk
、すべての外部libの要件とイニシャルを1つのファイルまたは場所で管理するためにdir を作成することをお勧めします)。
import * as $ from "jquery";