我正在使用tsc构建任务。不幸的是,我总是从节点模块文件夹得到相同的错误

Executing task: .\node_modules\.bin\tsc.cmd --watch -p .\tsconfig.json <
node_modules/@types/node/index.d.ts(6208,55): error TS2304: Cannot find name 'Map'.
node_modules/@types/node/index.d.ts(6215,55): error TS2304: Cannot find name 'Set'.
node_modules/@types/node/index.d.ts(6219,64): error TS2304: Cannot find name 'Symbol'.
node_modules/@types/node/index.d.ts(6225,59): error TS2304: Cannot find name 'WeakMap'.
node_modules/@types/node/index.d.ts(6226,59): error TS2304: Cannot find name 'WeakSet'.
10:13:18 - Compilation complete. Watching for file changes.

我已经在tsconfig.json中添加了忽略目录


    {
      "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "sourceMap": true,
        "strict": false,
        "noImplicitAny": false,
        "strictPropertyInitialization": false,
        "esModuleInterop": true,
      },
      "include": [
        "src/*"
      ],
      "exclude": [
        "node_modules",
        "./node_modules",
        "./node_modules/*",
        "./node_modules/@types/node/index.d.ts",
      ]
    }

我哪里做错了?我该怎么做才能忽略这些错误呢?

我使用的是VsCode和tsc 2.9.2版


当前回答

在tsconfig.json中设置"skipLibCheck": true

其他回答

您可以在命令行上完成此操作

tsc --skipLibCheck

我在使用纱线工作区的monorepo中遇到了类似的问题。

结果我的应用程序使用了不同的TypeScript版本的根工作空间,使它们同步解决了这个问题。

你可以在你自己的repo中运行yarn list typescript或npm ls typescript来验证这一点。

如果你有多个版本的TypeScript,那么把你的项目升级到低版本,这样你的repo中就都有当前使用的最高版本,例如yarn add -D typescript@4.5.5(或者任何你需要的版本)

我在typescript@3.2.1上遇到了这个问题,并通过升级到3.7.3修复了它。

请注意,对于typescript@3.2.1, skipLibCheck不会生效。当我升级TypeScript时,skipLibCheck: true工作。

在tsconfig.json中设置"skipLibCheck": true

升级你的typescript和ts-node: :“打印稿4.9.4” :“ts-node 10.9.1”

并在构建或将其放在tsconfig的compilerOtions中时使用——skipLibCheck标志。json文件("skipLibCheck": true)…