我在努力
$(function(){
alert('Hello');
});
在Visual Studio中显示此错误:(TS)无法找到名称“$”..我如何使用jQuery与TypeScript ?
我在努力
$(function(){
alert('Hello');
});
在Visual Studio中显示此错误:(TS)无法找到名称“$”..我如何使用jQuery与TypeScript ?
当前回答
你可以通过扩展窗口接口来声明全局变量:
import jQuery from '@types/jquery';
declare global {
interface Window {
jQuery: typeof jQuery;
$: typeof jQuery;
}
}
来源:
https://stackoverflow.com/a/12709880/4642023 https://mariusschulz.com/blog/declaring-global-variables-in-typescript#augmenting-the-window-interface
其他回答
2019年更新:
大卫的回答更准确。
Typescript支持第三方供应商库,这些库不使用Typescript进行库开发,使用DefinitelyTyped Repo。
你需要在你的组件中声明jquery/$,如果这些类型的类型检查tsLint是On的。
如。
declare var jquery: any;
declare var $: any;
对于Angular CLI V2+
npm install jquery --save
npm install @types/jquery --save
确保jquery在angular中有一个条目。Json ->脚本
...
"scripts": [
"node_modules/jquery/dist/jquery.min.js"
]
...
转到tsconfig.app.json,在“类型”中添加一个条目
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": ["jquery","bootstrap","signalr"]
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
从现在到现在,在Angular版本9,这对我来说都是有效的
通过npm安装:npm i @types/jquery只需添加——save到全局设置。 转到tsconfig.app.json,在数组“types”中添加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的所有优点
就我而言,我必须这么做
npm install @types/jquery --save-dev // install jquery type as dev dependency so TS can compile properly
npm install jquery --save // save jquery as a dependency
然后在脚本文件A.ts
import * as $ from "jquery";
... jquery code ...