声明
x = $('#msgBox_' + scope.boxId).position().left;
生成
错误TS2304:找不到姓名' $'
虽然jquery
和@types
安装在node_modules文件夹中。
我的tsconfig.json看起来像这样:
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"sourceMap": true,
"moduleResolution": "node",
"declaration": true
},
"exclude": [
"node_modules"
]
}
我该如何解决?
答案 0 :(得分:9)
你有没有尝试过:
import $ = require('jquery');
在1号线?这应该工作。 虽然您应该深入了解es6模块和ts模块,以掌握如何利用es6模块化系统。还有d.ts文件......
这应该会有所帮助: https://www.typescriptlang.org/docs/handbook/modules.html
答案 1 :(得分:5)
原来我错过了“@ types / jquery”节点模块,其中包含“$”的定义。一旦我将“@ types / jquery”:“^ 3.2.5”添加到我的package.json中的“devDependencies”列表并通过“npm install”重新安装,一切正常。
答案 2 :(得分:4)
如果AngularCLI是您注入JQuery的地方,那么在您的控制器/组件中,您可以像这样声明变量:
declare var $: any;
答案 3 :(得分:0)
此类错误的一个原因是您的 node_modules 不包含jquery的类型定义,即。软件包@types/jquery
丢失。
我的解决方法如下:
在项目文件夹的根目录中打开命令提示符,然后键入:
npm install --save @types/jquery
。
如果您遇到要选择版本的问题,请选择最新版本。
上述命令成功结束后,运行yarn install
。
上述安装成功后,运行yarn start
以启动您的项目。