我在努力

$(function(){ 
    alert('Hello'); 
});

在Visual Studio中显示此错误:(TS)无法找到名称“$”..我如何使用jQuery与TypeScript ?


当前回答

在安装jquery和@types/jquery(作为dev依赖项)后,使用以下导入:

import * as $ from "jquery";

对我来说,只有这样才有用。 (angular9)

其他回答

我相信你可能需要JQuery的Typescript类型。既然你说你使用Visual Studio,你可以使用Nuget来获取它们。

https://www.nuget.org/packages/jquery.TypeScript.DefinitelyTyped/

Nuget Package Manager Console中的命令为

Install-Package jquery.TypeScript.DefinitelyTyped

更新:正如评论中提到的,这个包自2016年以来就没有更新过。但你仍然可以访问他们的Github页面https://github.com/DefinitelyTyped/DefinitelyTyped并下载这些类型。导航到库的文件夹,然后在那里下载index.d.ts文件。弹出它在你的项目目录的任何地方,VS应该立即使用它。

对于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"
    ]
}

下面是我的TypeScript和jQuery配置步骤。

它使jQuery的类型支持比互联网上的大多数文章更好地工作。(我相信。)

第一:

npm install jquery --save
npm install @types/jquery --save-dev




第二(非常非常非常重要!!!):

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 !')
    }
}




它像丝一样光滑!!

如果你想在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的所有优点

2019年更新:

大卫的回答更准确。

Typescript支持第三方供应商库,这些库不使用Typescript进行库开发,使用DefinitelyTyped Repo。


你需要在你的组件中声明jquery/$,如果这些类型的类型检查tsLint是On的。

如。

declare var jquery: any;
declare var $: any;