为什么我得到这个和更多类似的错误?我正在添加一个链接到回购以及下面的关键代码片段。我认为我对依赖和“包括”链接的工作方式有一个基本的误解。

csvproc(master)> tsc
node_modules/typescript/bin/lib.core.d.ts(83,5): error TS2300: Duplicate identifier 'configurable'.
node_modules/typescript/bin/lib.core.d.ts(84,5): error TS2300: Duplicate identifier 'enumerable'.
node_modules/typescript/bin/lib.core.d.ts(85,5): error TS2300: Duplicate identifier 'value'.
node_modules/typescript/bin/lib.core.d.ts(86,5): error TS2300: Duplicate identifier 'writable'.

所有代码都可以在这里找到。

我的tsconfig.json:

{
    "compilerOptions": {
        "module": "commonjs",
        "noImplicitAny": false,
        "outDir": "built/",
        "sourceMap": true,
        "target": "es5"
    }
}

我的tsd.json:

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": "typings",
  "bundle": "typings/tsd.d.ts",
  "installed": {
    "node/node-0.10.d.ts": {
      "commit": "6387999eb899d0ba02d37dd8697647718caca230"
    },
    "should/should.d.ts": {
      "commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4"
    }
  }
}

我的tsd.d.ts:

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": "typings",
  "bundle": "typings/tsd.d.ts",
  "installed": {
    "node/node-0.10.d.ts": {
      "commit": "6387999eb899d0ba02d37dd8697647718caca230"
    },
    "should/should.d.ts": {
      "commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4"
    }
  }
}

您还可以在tsconfig中使用exclude选项。Json文件如下:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "noLib": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true
  },
  "exclude": [
    "node_modules"
  ]
}

更新:typeings的1.0版本改变了输出结构,下面的答案涉及1.0之前的版本。

如果您正在使用tsconfig中的Typings和exclude。Json,你可能会遇到重复类型的问题,需要如下:

{
  "exclude": [
    "typings/browser.d.ts",
    "typings/browser",
    "node_modules"
  ]
}

为了简化与TypeScript的集成,有两个文件- types /main.d。t和类型/浏览器。d。生成t -引用项目中安装的所有类型,每次只能使用其中一个类型。

因此,根据您需要的版本,您应该排除(或包括)“浏览器”或“主”类型的文件,但不能同时排除(或包括)“浏览器”或“主”类型的文件,因为这是副本的来源。

这一期Typings将对此进行更多的讨论。


如果你已经在typings文件夹中单独安装了类型,将其添加到tsconfig.json:

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

我刚刚遇到了这个问题。当我运行npm start时,我得到了一堆重复的标识符错误。

解决方案:

从项目根文件夹运行:

rm -r typings
typings install
npm start

一切都很正常。


这个问题是由于磁盘上有一个意外的文件夹(jspm_packages,不再被使用),源代码控制没有跟踪(并且从我的IDE中隐藏)。这里面有一个重复的TypeScript安装,这导致了问题。

这是一种边缘情况,但在这里留下一个答案,以防其他人在寻找这个解。


我有这个问题,原来我在我的项目中有一个不应该在那里的第二个node_modules文件夹:-(


使用webpack时,我遇到了同样的错误,只是以防排除。d。Ts文件在您的tsconfig。Json和node_modules解决了我的问题:

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

在更改tsconfig后,我遇到了这个错误和其他错误。Json到目标:“es2015”,和模块:“es2015”。

base (AngularJS2快速入门)使用/// <引用路径="../../ types /index.d. "Ts " />。ts文件。为了解决这个问题,我必须去掉这条线。


简单地解决问题:

删除“node_modules”文件夹 运行npm install获取所有版本正确的包

在我的例子中,问题发生在更改Git分支之后,其中一个新分支使用了一组不同的节点模块。旧分支使用的是TypeScript v1.8,新分支使用的是TypeScript v2.0


我们从网站文件夹中删除了一个lib文件夹。这是由以前的类型安装创建的。这变成了重复。当这个被移除时,它工作了!


在我的例子中,我得到的错误是

node_modules/@types/es6-promise/index.d.ts(11,15):错误TS2300:重复标识符“承诺”。

我的包上有@types/es6-promise。Json,但我的tsconfig已经与目标:“es6”。所以我猜在编译时与Promise有冲突。

从包中删除@types/es6-promise。Json文件解决了这个问题。


我也遇到过类似的问题。简单地移动我的tsconfig。Json从我的项目的根到不同的范围有所帮助。在我的项目中,我移动了tsconfig。Json从根到wwwroot。


这可能是因为节点文件夹中同时存在类型和依赖项。 因此,首先检查你的@types文件夹中有什么,如果你有依赖项,删除重复项。 对我来说是core.js


从包中删除@types/express-validator。Json文件,然后运行NPM install

阅读更多

作者信息: 此包已弃用 这是express-validator的存根类型定义(https://github.com/ctavan/express-validator)。Express-validator提供了它自己的类型定义,所以你不需要安装@types/ Express-validator !


运行以下命令将修复此问题。

安装@types/node


完全关闭解决方案并重新运行项目解决了我的问题。


添加"typeRoots": ["node_modules/@types"]到tsconfig中的"compilerOptions"中。Json文件为我工作。


Angular的一个(可能的)解决方案

在我的例子中,当安装@angularfire。它会自动从我的环境文件中导入环境。这给出了重复标识符“环境”错误。

但是,我已经在同一个文件中导入了这个文件,因此导致了重复标识符错误。

我创建了一个新项目,一步一步地找到这个错误……

TL;DR:检查文件中的重复导入,出现错误。


在tsconfig中启用skipLibCheck为我修复了它。

{
  "compilerOptions": {
    "skipLibCheck": true /* Skip type checking all .d.ts files. */
  },
  "exclude": ["node_modules"],
  "include": ["./src/**/*.ts"]
}

添加"skipLibCheck": true到"compilerOptions"

https://github.com/ionic-team/capacitor/issues/5436#issuecomment-1077942409