由于打字导致的 TypeScript 编译错误

标签 typescript typing

我使用的是 typescript 1.7.5、typings 0.6.9 和 angular 2.0.0-beta.0。

我怎样才能摆脱由于打字定义文件引起的 typescript 编译错误消息重复标识符

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"
    ]
}

如果我更改 tsconfig.jsonexclude 部分,它们就会消失:

"exclude": [
    "node_modules",
    "typings"
]

但在添加以下内容后,我再次遇到相同的 Duplicate identifier 编译错误:

/// <reference path="../../typings/browser.d.ts" />

打字.json

{
  "name": "example-mean-app-client",
  "dependencies": {},
  "devDependencies": {},
  "ambientDependencies": {
    "bootstrap": "github:DefinitelyTyped/DefinitelyTyped/bootstrap/bootstrap.d.ts#4de74cb527395c13ba20b438c3a7a419ad931f1c",
    "es6-promise": "github:DefinitelyTyped/DefinitelyTyped/es6-promise/es6-promise.d.ts#830e8ebd9ef137d039d5c7ede24a421f08595f83",
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#4de74cb527395c13ba20b438c3a7a419ad931f1c",
    "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#dd638012d63e069f2c99d06ef4dcc9616a943ee4",
    "karma": "github:DefinitelyTyped/DefinitelyTyped/karma/karma.d.ts#02dd2f323e1bcb8a823269f89e0909ec9e5e38b5",
    "karma-jasmine": "github:DefinitelyTyped/DefinitelyTyped/karma-jasmine/karma-jasmine.d.ts#661e01689612eeb784e931e4f5274d4ea5d588b7",
    "systemjs": "github:DefinitelyTyped/DefinitelyTyped/systemjs/systemjs.d.ts#83af898254689400de8fb6495c34119ae57ec3fe",
    "zone.js": "github:DefinitelyTyped/DefinitelyTyped/zone.js/zone.js.d.ts#9027703c0bd831319dcdf7f3169f7a468537f448"
  }
}

最佳答案

对我来说,选择“浏览器”或“主”(取决于您的应用程序:前端或后端)并在 tsconfig.json 中排除另一个有效:

  "exclude": [
    "node_modules",
    "wwwroot",
    "typings/main",
    "typings/main.d.ts"
  ]

关于由于打字导致的 TypeScript 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35776470/

相关文章:

angular - 将多个主机绑定(bind)组合成一个装饰器

javascript - 使用 javascript .net 限制文本框中的字符类型和粘贴

parsing - Haskell:读取一个数字(整数或 float )

mongodb - 如何在 typescript 中输入 Mongoose ObjectID数组

objective-c - 一种编程语言如何既是静态类型又是动态类型的?

c# - 有没有一种方法可以将 typescript 定义转换为 C#,以便在 Bridge 中使用?

node.js - @Types/Sequelize 错误 TS1086 : An accessor cannot be declared in ambient context

javascript - 在 Typescript 中使用 javascript

angular - RxJS 和 angular.io : an Observable<Array<T>> where T contains an observable array

python - 获取列表类型的元素类型