Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何强制tsc忽略节点\模块文件夹?_Node.js_Typescript_Tsc_Tsconfig - Fatal编程技术网

Node.js 如何强制tsc忽略节点\模块文件夹?

Node.js 如何强制tsc忽略节点\模块文件夹?,node.js,typescript,tsc,tsconfig,Node.js,Typescript,Tsc,Tsconfig,我正在使用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

我正在使用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.
我做错了什么?我应该怎么做才能忽略这些错误

我正在使用VsCode和tsc版本2.9.2在“编译器选项”中添加一个空的“类型”选项:

@类型、类型根和类型

默认情况下,所有可见的“@types”包都包含在您的 汇编任何封闭文件夹的node_modules/@类型中的包 被认为是可见的;具体来说,这意味着 ./node_modules/@types/,../node_modules/@types/, ../../node_modules/@types/等

指定“类型”:[]以禁用自动包含@types包。

请记住,只有当您 使用具有全局声明的文件(与声明为 模块)。例如,如果使用导入“foo”语句, TypeScript仍然可以查看节点\模块和节点\模块/@类型 查找foo包的文件夹


快速修复是跳过检查

{
  "compilerOptions": {
    "skipLibCheck": true
  },
}

我在
typescript@3.2.1
并通过将其升级到
3.7.3
进行修复


注意
typescritp@3.2.1
skipLibCheck
无效。通过升级
typescript
skipLibCheck:true
可以正常工作。

您可以在命令行上执行此操作

tsc——skipLibCheck

set
“skipLibCheck”:true
内部
tsconfig.json

由于我导入的库只导出了它自己的类型,而我通过使用脚本导入导入了实际文件,这样我就可以从cdn为它们提供服务。谢谢:)这方面的文档:这也将跳过您对所有声明的类型检查。
*.d.ts
skipLibCheck是否仅针对node_模块文件夹?@DilipAgheda否它还将针对
node_模块
之外的任何
d.ts
文件。所以这可能不是大多数人想要的。@MichaelOzeryansky:对不起,我不明白你的意思。我刚刚在的tsconfig.json中添加了一行OP@MichaelOzeryansky这个添加可能会使编译运行得更快。行数越多,编译速度就越慢。行数越少,代码运行速度就越快。这里需要注意的是,这将阻止许多项目在没有其他重大更改的情况下编译,因为不再包含它们所需的类型。works for me,@Micwas help,已升级到最新版本。3.9.7并添加了skiplibcheckt谢谢,我几乎在屏幕上打了个洞。这可能会很有帮助:“……要做到这一点,编译器需要定义一个模块,它可以是一个.ts文件,用于您自己的代码,也可以是一个.d.ts文件,用于导入的定义文件。如果找到了该文件,不管在前面的步骤中是否排除了它,它都会被包括在内。”->我想要类型。我不想建立我的项目。为此,我使用了JSDoc,因为它使用了运行人员将忽略的注释。我能找到的唯一一个可以根据JSDoc过滤我的类型的CLI是带有“noEmit”:true和“checkJs”:true的Typescript CLI。但是我从node_modules/utils/utils.js中得到了错误。我不想要这些错误。如何删除它们?这会更好,因为如果您使用webpack插件验证包含的库类型,则在webpack构建期间至少会验证库类型
{
  "compilerOptions": {
    "skipLibCheck": true
  },
}