Typescript 在导入 jquery 后找不到名称“$”?
Typescript cannot find name '$' after importing jquery?
我使用的是 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
我的 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"));
这是使用以下命令编译的:
tsc --module amd scripts/main/test.ts
我希望它 运行 正确,但是当我编译它时我得到:
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 安装而不是 yarn,代码应该像这样
npm install --save @types/jquery
我使用的是 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
我的 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"));
这是使用以下命令编译的:
tsc --module amd scripts/main/test.ts
我希望它 运行 正确,但是当我编译它时我得到:
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 安装而不是 yarn,代码应该像这样
npm install --save @types/jquery