找不到带有Typescript 1.7.5的全局类型"IterableIterator" [英] Cannot find global type 'IterableIterator' with Typescript 1.7.5
问题描述
我安装了NPM版本的Typescript 1.7.5和angular2 beta.在Visual Studio 2015 Update 1中构建项目时,出现以下错误:
I installed NPM version of Typescript 1.7.5 and angular2 beta. While building the project in Visual Studio 2015 Update 1, I get this errors:
1>VSTSC : error TS2318: Build: Cannot find global type 'Iterable'.
1>VSTSC : error TS2318: Build: Cannot find global type 'IterableIterator'.
1>VSTSC : error TS2318: Build: Cannot find global type 'Symbol'.
1>VSTSC : error TS2468: Build: Cannot find global value 'Symbol'.
我的tsconfig.json文件是这样的:
My tsconfig.json file is this:
{
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": true,
"sourceMap": true,
"target": "es6",
"module": "system",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"noLib": false
},
"exclude": [
"node_modules",
"wwwroot",
"bower_components"
],
"files": [
"node_modules/angular2/typings/tsd.d.ts",
"node_modules/angular2/typings/zone/zone.d.ts",
"node_modules/angular2/core.d.ts",
"node_modules/typescript/lib/lib.d.ts"
]
}
如何解决此错误?
更新:
我尝试了Martin Vseticka的回答.我收到以下错误:
I tried Martin Vseticka's answer. I get the following errors:
1>C:\Test\node_modules\angular2\src\facade\lang.d.ts(2,22): error TS2304: Build: Cannot find name 'BrowserNodeGlobal'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(6,14): error TS2300: Build: Duplicate identifier 'PropertyKey'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(9,5): error TS2300: Build: Duplicate identifier 'done'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(10,5): error TS2300: Build: Duplicate identifier 'value'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(248,5): error TS2300: Build: Duplicate identifier 'EPSILON'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(283,5): error TS2300: Build: Duplicate identifier 'MAX_SAFE_INTEGER'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(290,5): error TS2300: Build: Duplicate identifier 'MIN_SAFE_INTEGER'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(346,5): error TS2300: Build: Duplicate identifier 'flags'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(498,5): error TS2300: Build: Duplicate identifier 'prototype'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(561,5): error TS2300: Build: Duplicate identifier 'size'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(570,5): error TS2300: Build: Duplicate identifier 'prototype'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(581,5): error TS2300: Build: Duplicate identifier 'size'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(590,5): error TS2300: Build: Duplicate identifier 'prototype'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(605,5): error TS2300: Build: Duplicate identifier 'prototype'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(619,5): error TS2300: Build: Duplicate identifier 'prototype'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(3841,14): error TS2300: Build: Duplicate identifier 'PropertyKey'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4061,5): error TS2300: Build: Duplicate identifier 'EPSILON'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4096,5): error TS2300: Build: Duplicate identifier 'MAX_SAFE_INTEGER'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4103,5): error TS2300: Build: Duplicate identifier 'MIN_SAFE_INTEGER'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4389,5): error TS2300: Build: Duplicate identifier 'done'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4390,5): error TS2300: Build: Duplicate identifier 'value'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4619,5): error TS2300: Build: Duplicate identifier 'flags'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4647,5): error TS2300: Build: Duplicate identifier 'size'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4657,5): error TS2300: Build: Duplicate identifier 'prototype'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4674,5): error TS2300: Build: Duplicate identifier 'prototype'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4686,5): error TS2300: Build: Duplicate identifier 'size'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4696,5): error TS2300: Build: Duplicate identifier 'prototype'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(4712,5): error TS2300: Build: Duplicate identifier 'prototype'.
1>C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.7\lib.es6.d.ts(5099,5): error TS2300: Build: Duplicate identifier 'prototype'.
当我尝试David Sherrit的答案时,出现14175错误.错误始于:
When I tried David Sherrit's answer, I get 14175 errors. The errors start with:
1>C:\Test\node_modules\angular2\src\facade\lang.d.ts(2,22): error TS2304: Build: Cannot find name 'BrowserNodeGlobal'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(6,14): error TS2300: Build: Duplicate identifier 'PropertyKey'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(9,5): error TS2300: Build: Duplicate identifier 'done'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(10,5): error TS2300: Build: Duplicate identifier 'value'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(248,5): error TS2300: Build: Duplicate identifier 'EPSILON'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(283,5): error TS2300: Build: Duplicate identifier 'MAX_SAFE_INTEGER'.
1>C:\Test\node_modules\angular2\typings\es6-shim\es6-shim.d.ts(290,5): error TS2300: Build: Duplicate identifier 'MIN_SAFE_INTEGER'.
更新:
我尝试过:
{
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": true,
"sourceMap": true,
"target": "es6",
"module": "system",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"noLib": false
},
"exclude": [
"node_modules",
"wwwroot",
"bower_components"
],
"files": [
"node_modules/angular2/core.d.ts",
"node_modules/typescript/lib/lib.d.ts",
"node_modules/typescript/lib/lib.es6.d.ts"
]
}
但是仍然出现14162个错误,主要是关于重复项的错误.将 noLib 设置为 true 并没有帮助.
But still getting around 14162 errors which is primarily about duplicates. Turning the noLib to true did not help.
推荐答案
通常,当noLib
设置为true
且target
设置为es6
时,除lib.d.ts
外,它还将包括lib.es6.d.ts
. lib.es6.d.ts
保留着ES6的特定定义.
Usually when noLib
is set to true
and target
is set to es6
it will include lib.es6.d.ts
in addition to lib.d.ts
. lib.es6.d.ts
holds the definitions specific to ES6.
但是,您要包括lib.d.ts
,该文件的顶部带有以下语句:
However, you are including lib.d.ts
, which has this statement at the top of that file:
/// <reference no-default-lib="true"/>
这将覆盖您的tsconfig.json
选项,并将noLib
设置为true
;因此,它不包含lib.es6.d.ts
.这说明了您的错误.
This overrides your tsconfig.json
option and sets noLib
to true
; therefore, it doesn't include lib.es6.d.ts
. This explains your errors.
如果要继续使用node_modules/typescript/...
中的定义文件,则还需要包括lib.es6.d.ts
:
If you want to continue using the definition files from node_modules/typescript/...
, then you need to include lib.es6.d.ts
as well:
"files": [
"node_modules/angular2/typings/tsd.d.ts",
"node_modules/angular2/typings/zone/zone.d.ts",
"node_modules/angular2/core.d.ts",
"node_modules/typescript/lib/lib.d.ts",
"node_modules/typescript/lib/lib.es6.d.ts"
]
否则,按照马丁的回答,将noLib
保留为false
,并在文件列表中删除对lib.d.ts
的引用.
Otherwise, follow Martin's answer by keeping noLib
as false
and remove the reference to lib.d.ts
in the list of files.
这篇关于找不到带有Typescript 1.7.5的全局类型"IterableIterator"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!