找不到带有Typescript 1.7.5的全局类型"IterableIterator" [英] Cannot find global type 'IterableIterator' with Typescript 1.7.5

查看:162
本文介绍了找不到带有Typescript 1.7.5的全局类型"IterableIterator"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我安装了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设置为truetarget设置为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆