node.js - TS2451 : Cannot redeclare block-scoped variable 'custom'

标签 node.js typescript visual-studio-code

我在网络项目中使用 typescript 。我用 awesome-typescript-loader作为webpack装载机。我在构建项目时遇到错误:

ERROR in [at-loader] ./node_modules/@types/node/index.d.ts:82:15 
    TS2451: Cannot redeclare block-scoped variable 'custom'.
ERROR in [at-loader] ./node_modules/@types/node/index.d.ts:85:15 
    TS2451: Cannot redeclare block-scoped variable 'custom'.
ERROR in [at-loader] ./node_modules/@types/node/ts3.2/util.d.ts:7:15 
    TS2451: Cannot redeclare block-scoped variable 'custom'.
ERROR in [at-loader] ./node_modules/@types/node/ts3.2/util.d.ts:10:15 
    TS2451: Cannot redeclare block-scoped variable 'custom'.

我只用 typescript 启动了一个全新的文件夹和 @types/typescript安装后,我仍然可以看到 visual studio code 提示的相同错误.

以下版本:

  "dependencies": {
    "@types/node": "^11.13.6",
    "typescript": "^3.4.4"
  }

如上报错,我发现

index.d.ts :

declare module "util" {
    namespace inspect {
        const custom: symbol;
    }
    namespace promisify {
        const custom: symbol;
    }
    namespace types {
        function isBigInt64Array(value: any): boolean;
        function isBigUint64Array(value: any): boolean;
    }
}

util.d.ts :

declare module "util" {
    namespace inspect {
        const custom: unique symbol;
    }
    namespace promisify {
        const custom: unique symbol;
    }
    namespace types {
        function isBigInt64Array(value: any): value is BigInt64Array;
        function isBigUint64Array(value: any): value is BigUint64Array;
    }
}

我们可以看到custom确实在 index.d.ts 中重新声明和 util.d.ts .

所以我的问题是如何解决这个问题?这是@types/node 的错误吗?

最佳答案

我遇到了同样的问题。在 tsconfig 中删除对 Node 的引用为我解决了这个问题。

示例 tsconfig。

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "dist",
    "sourceMap": true
  },
  "files": [
     // "./node_modules/@types/node/index.d.ts",
    "./node_modules/@types/express/index.d.ts"
  ],
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ],
  "lib": [
    "es2017"
  ]
}

关于node.js - TS2451 : Cannot redeclare block-scoped variable 'custom' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790286/

相关文章:

Angular 2 -> 如何使用 FormGroup 隐藏控件

c# - VSCode 中的 DotNet 核心 3.0 编译问题

visual-studio-code - 如何调试为什么 eslint 无法与 vscode 正常工作?

c++ - 在 VSCode 中编译 C++ 给我一个 undefined reference

node.js - 在node.js中显示网页上变量的内容

node.js - 通过重定向将数据从 Express 发送到 React

typescript - 从函数参数推断联合类型

typescript - 将js文件加载到 typescript 文件中

javascript - 我想我不会 "get"异步编程

javascript - 一个 promise 的 mysql 模块将如何与 NodeJS 一起工作?