我使用的是typescript 1.7.5,类型为0.6.9,角度为2.0.0-beta.0。
由于打字定义文件,如何摆脱打字稿编译错误消息Duplicate identifier
?
Duplicate identifier
错误发生在以下目录的定义文件中:
node_modules/angular2/typings/es6-shim/es6-shim.d.ts
node_modules/angular2/typings/jasmine/jasmine.d.ts
node_modules/angular2/typings/zone/zone.d.ts
typings/browser/ambient/es6-promise/es6-promise.d.ts
typings/browser/ambient/es6-shim/es6-shim.d.ts
typings/browser/ambient/jasmine/jasmine.d.ts
typings/browser/ambient/karma/karma.d.ts
typings/browser/ambient/zone.js/zone.js.d.ts
编译器在node_modules/angular2
目录中做了什么,因为我在tsconfig.json
中将其排除在外?
I also posted this question on GitHub
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
如果我更改exclude
的{{1}}部分,它们就不见了:
tsconfig.json
但是在添加以下内容之后,我又得到了相同的"exclude": [
"node_modules",
"typings"
]
编译错误:
Duplicate identifier
typings.json
/// <reference path="../../typings/browser.d.ts" />
答案 0 :(得分:4)
对我来说,选择“浏览器”或“主要”(取决于您的应用程序:前端或后端)并排除tsconfig.json
中的另一个工作:
"exclude": [
"node_modules",
"wwwroot",
"typings/main",
"typings/main.d.ts"
]
答案 1 :(得分:3)
编译器在node_modules / angular2目录中做了什么,因为我在tsconfig.json中将其排除了
它查看npm模块,因为"moduleResolution": "node",
但仅导入的文件(没有排除它会查看所有文件)。
答案 2 :(得分:3)
正如basarat所暗示的那样,你可以改变:
"moduleResolution": "classic",
到
import
或者您可以简单地从typings文件夹中删除所有重复的输入。发生的事情是,它会自动导入代码中每个browser.d.ts
的node_modules文件夹中的所有类型。它还导入了undercore
文件依赖项的类型。