2017-09-03 81 views
4

我是一个试图学习新技巧的老狗(npm,TypeScript等)。我正在使用TypeScript 2.5的Visual Studio 2017(项目设置为“Latest”)。我有一个非常基础的.NET Core 2.0项目,我刚开始着手并在我的项目中添加了@ types/jquery(3.2.12),但它仍然抱怨无法找到'Iterable'。我已经在这个问题看了很多帖子,以及如何可能解决它,包括:TS2304:在@ types/jquery中找不到名字iterable

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 +目标的排列都无济于事。我可以得到各种其他的错误,但这一点,核心错误永远不会消失。我花了更多时间试图让TypeScript工作,而不是使用普通的'JavaScript'编写模块。

这是一个.NET核心项目/模板问题?我怎么能告诉IDE正在看我的tsconfig.json文件(项目树中没有其他这样的文件)。任何帮助,将不胜感激。

+0

我终于放弃了试图让@类型/ jQuery的在版本3.0+工作,并恢复到一个jQuery 2.0版本只是为了让项目编译。尽管如此,这仍然是一个蹩脚的解决方案,我仍然试图找出如何解决这个问题。 –

回答

1

我有类似的问题,我不得不在我的tsconfig.json添加include部分,我解决了这个错误。我有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" 
    ] 
} 
+0

如果它能正常工作,我会给出一个答案并指出接受的答案。谢谢! –

+0

唉,我仍然有同样的问题,并出于某种原因VS标志@ types/jquery @ 3.1.12在解决方案视图中“无关”。 –

+0

将“es2015.iterable”添加到lib为我修复:''lib“:[”dom“,”es5“,”es2015.promise“,”es2015.iterable“]' – Nick

0

对于任何人收到此错误,使用jQuery的旧版本时,你可以得到一个版本的特定类型的文件解决问题。

由于各种原因,我必须使用jQuery 1.10.2。使用默认的@ types/jquery给了我3.2.16版本。因此,我不得不这样做,以获得一个版本1特定版本:

npm install @types/[email protected] 

同样版本的具体类型可以下载2.x和3.x

相关问题