Typescript找不到名称'$';导入jquery之后?

Typescript找不到名称'$';导入jquery之后?,jquery,typescript,Jquery,Typescript,我使用的是TypeScript 1.4.1,有一个项目的布局如下: scripts/ libs/ jquery/ jquery.d.ts // Latest from DefinitelyTyped jquery.js // 2.1.3 lodash/ lodash.d.ts // Latest from DefinitelyTyped lodash.js //

我使用的是TypeScript 1.4.1,有一个项目的布局如下:

scripts/
    libs/
        jquery/
            jquery.d.ts // Latest from DefinitelyTyped
            jquery.js // 2.1.3
        lodash/
            lodash.d.ts // Latest from DefinitelyTyped
            lodash.js // 3.3.1
    main/
        test.ts
My main/test.ts包含以下内容:

/// <reference path="../libs/lodash/lodash.d.ts" />
/// <reference path="../libs/jquery/jquery.d.ts" />

import _ = require("lodash");
import $ = require("jquery");

function requireExistingElement($el: $.JQuery) {
    if(_.isUndefined($el) || _.isNull($el) || $el.length === 0) {
        throw new Error("It appears the requested element does not exist?");
    }
}

requireExistingElement($("body"));
我希望它能正确运行,但当我编译它时,我得到:

scripts/main/test.ts(7,38): error TS2304: Cannot find name '$'.
scripts/main/test.ts(13,24): error TS2304: Cannot find name '$'.
我的问题是:如果上述方法不起作用,我如何引用jquery?或者,我只是做错了什么吗?

($el:$.JQuery)
更改为
($el:JQuery)


$
是一个变量,因此不能在类型批注中使用
JQuery
是一个接口,因此可以在类型注释中使用它。

只需安装JQuery库即可

yarn add @types/jquery --save
typescript将自动导入此库

如果您想用npm而不是纱线来安装,代码应该如下

npm install --save @types/jquery

你说得对,这就是问题所在。这似乎很不明显,但确实有道理。谢谢@我也有一个类似的。想看看你能不能帮我。
npm install --save @types/jquery