我在努力

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

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


当前回答

很可能你需要下载并包含jQuery-jquery.d的TypeScript声明文件。在你的项目里。

选项1:安装@types包(推荐用于TS 2.0+)

和你的包放在同一个文件夹里。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

其他回答

这对我来说很管用:

export var jQuery: any = window["jQuery"];

你可以通过扩展窗口接口来声明全局变量:

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

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

对于Visual Studio代码

对我来说有用的是确保我通过index.html中的< script >标记来加载标准的JQuery库。

Run

npm install --save @types/jquery

现在JQuery $函数在所有.ts文件中都可用,不需要任何其他导入。

我相信你可能需要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应该立即使用它。