当我尝试构建时,我收到以下错误(以及许多其他类似的错误):
typings / selenium-webdriver / selenium-webdriver.d.ts(12,11):错误TS2300:重复标识符'Driver'。
更新到typescript v2后,此错误开始出现。 我在index.ts
中引用了tds.d.ts任何想法如何解决这个错误?
答案 0 :(得分:0)
很可能是selenium-webdriver * .ts文件不止一次被包含在内。查看此链接(下面的文档摘要):
https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types
@types,typeRoots和types
默认情况下,所有可见的“@types”包都包含在您的 汇编。任何封闭文件夹的node_modules / @类型中的包 被认为是可见的;具体来说,这意味着包内 ./node_modules/@types/,../node_modules/@types/, ../../node_modules/@types/,等等。
在您的控制台输出中,如果向下滚动并在"重复标识符'驱动程序""错误消息,您可能会看到类似的内容:
node_modules/@types/selenium-webdriver/index.d.ts(12,11):错误 TS2300:重复的标识符'驱动程序'。
在你的tsconfig.json文件中,你可以使用设置" typeRoots",这是一个显式"类型"的数组。编译期间要考虑的根目录/位置。我的猜测是你会希望你的看起来像以下之一,以防止自动加载多个类似" typeRoots":
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [ "es2015", "dom" ],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"typeRoots": ["./typings"]
},
"exclude": [
"node_modules",
"**/*-aot.ts"
]
}
或
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [ "es2015", "dom" ],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"typeRoots": ["./node_modules/@types"]
},
"exclude": [
"node_modules",
"**/*-aot.ts"
]
}
还有一些其他可能感兴趣的tsconfig.json属性,例如"文件","排除","包含"和"类型"