打字稿错误:TS2304:找不到姓名' $'

时间:2017-06-28 07:51:27

标签: javascript node.js typescript

声明

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

我该如何解决?

4 个答案:

答案 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丢失。

我的解决方法如下:

  1. 在项目文件夹的根目录中打开命令提示符,然后键入:

    npm install --save @types/jquery

    如果您遇到要选择版本的问题,请选择最新版本。

  2. 上述命令成功结束后,运行yarn install

  3. 上述安装成功后,运行yarn start以启动您的项目。