Reputation: 11599
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'.
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"
]
}
How to fix this error?
UPDATE:
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'.
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'.
UPDATE:
I tried 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/core.d.ts",
"node_modules/typescript/lib/lib.d.ts",
"node_modules/typescript/lib/lib.es6.d.ts"
]
}
But still getting around 14162 errors which is primarily about duplicates. Turning the noLib to true did not help.
Upvotes: 1
Views: 5426
Reputation: 106590
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.
However, you are including lib.d.ts
, which has this statement at the top of that file:
/// <reference no-default-lib="true"/>
This overrides your tsconfig.json
option and sets noLib
to true
; therefore, it doesn't include lib.es6.d.ts
. This explains your errors.
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"
]
Otherwise, follow Martin's answer by keeping noLib
as false
and remove the reference to lib.d.ts
in the list of files.
Upvotes: 1
Reputation: 28648
You seem to add lib.d.ts
twice because you use noLib
and you specifically add node_modules/typescript/lib/lib.d.ts
in files
.
I would just remove "node_modules/typescript/lib/lib.d.ts"
path.
There is also an issue with similar errors as you get: https://github.com/Microsoft/TypeScript/issues/5504
Upvotes: 1