TS2304:Build无法在@ types / jquery

时间:2017-09-03 16:21:10

标签: typescript asp.net-core visual-studio-2017

我是一只试图学习新技巧的老狗(npm,TypeScript等)。我正在使用Visual Studio 2017和TypeScript 2.5(项目设置为"最新")。我有一个非常基本的.NET Core 2.0项目,我刚刚开始研究并将@ types / jquery(3.2.12)添加到我的项目中,但它继续抱怨无法找到“Iterable”#39;我已经阅读了很多关于这个主题的帖子以及如何解决它,包括:

TypeScript error: node_modules/@types/three/three-core.d.ts(767,24): Error TS2304: Cannot find name 'Iterable'

https://github.com/DefinitelyTyped/DefinitelyTyped/issues/17239

TS-2304 Error - can not find name 'Iterable' in TypeScript while importing "jquery" in ".ts" file

我当前的tsconfig.json包含:

{
  "compilerOptions": {
    "lib": [
      "dom",
      "es5",
      "es2015.iterable"
    ],
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}

我已尝试过libs + target的每个排列都无济于事。我可以得到各种其他错误但是这个错误永远不会消失。我花了更多的时间来尝试让TypeScript工作,而不是用它来编写简单的模块。的JavaScript。

这是.NET Core项目/模板问题吗?如何判断IDE正在查看我的tsconfig.json文件(项目树中没有其他此类文件)。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我遇到了类似问题,我必须在include中添加tsconfig.json部分,我解决了这个错误。我有jQuery的3.2.1版本和@types/jquery的3.2.12版本。

{
  "compileOnSave": true,
  "compilerOptions": {
    "lib": [ "dom", "es2015" ],
    "module": "commonjs",
    "sourceMap": true,
    "strict": true,
    "target": "es5"
  },
  "include": [
    "./Scripts/TypeScript/*"
  ],
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

答案 1 :(得分:0)

对于其他任何人都会遇到此错误,当使用旧版本的jQuery时,您可以通过获取特定于版本的类型文件来解决问题。

由于各种原因,我必须使用jQuery 1.10.2。使用默认的@ types / jquery给了我3.2.16版。因此,我必须通过以下方式获得版本1特定版本:

npm install @types/jquery@1.x

类似的版本特定类型可以下载2.x和3.x