node.js - 在 nodejs 项目 VSCode 中禁用 DOM 库类型定义

标签 node.js typescript visual-studio-code

我想在 nodejs typescript 项目中禁用 DOM 类型定义。我正在使用下面的配置文件,但我仍然在 VSCode 中看到窗口对象类型定义。他们出现在 lib.dom.d.ts VSCode 扩展文件夹中的定义文件(不是当前项目的 Node 模块的一部分)。这导致了 typescript 中的运行时错误(这是非常令人担忧的)。有没有办法从项目中跳过 DOM 类型?

{
  "compilerOptions": {
    "lib": ["ES2016"],
    "target": "es6",
    "module": "commonjs",
    "skipLibCheck": true,
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "allowJs": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "inlineSourceMap": true,
    "importHelpers": true,
    "alwaysStrict": true,
    "strict": true,
    "outDir": "build",
    "forceConsistentCasingInFileNames": true,
    "esModuleInterop": true,
    "typeRoots": ["./node_modules/@types", "./typings"],
    "baseUrl": ".",
    "paths": {
      "#root/*": ["./*"]
    }
  },
  "include": [
    "src/**/*",
    "__tests__/**/*",
    "config/**/*",
    "scripts/bundle-test.ts"
  ],
  "exclude": ["node_modules"]
}

最佳答案

编辑:
我的第一个帖子是错误的!!!
因此,使用上面的配置摆脱 DOM 的 API 库的最佳方法是摆脱配置中的所有内容,除了您在下面我发布的代码段中看到的内容。如果您已经构建了您的项目,那么也可以创建一个空项目来确定您的配置,这样您就不必删除当前的配置,直到您知道需要向其中添加或删除什么。"./tsconfig.json"下面的片段不会包括 DOM API .如果您的项目中如上所述,您将不会收到任何关于 DOM API 的自动填充/建议/提示。在您的编辑器中(我猜是 VSCode。现在,如果您在 "./tsconfig.json" 文件中有以下配置,并且您发现当您输入类似 document 的内容时,您会得到 DOM API 的自动填充建议,这可能是因为您添加了某种类型,其中包含一些 DOM 类型的东西。下面的设置将影响自动建议的内容,具体取决于您添加到其中的 3rd 方模块。

"typeRoots": ["./node_modules/@types", "./typings"]

我不知道你都用什么,但我知道我通过下面的命令使用 Node.js @Types 模块......
~$ npm i -D @types/node

...而且我不必配置 typeRoots设置使其工作。我也知道 Node.js 不被识别,直到我添加 @types/node到我的依赖项,所以就像我说的那样,它会影响您的项目识别的 API。
// tsconfig.json

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "lib": ["ES2016"],
    "outDir": "./build"
  },

  "include": ["src/**/*"]
}


让我知道你是否让它工作,PLZ,重要的是你得到一个可靠的解决方案。

Here is the link to the official documentation for the topic.

关于node.js - 在 nodejs 项目 VSCode 中禁用 DOM 库类型定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67364024/

相关文章:

php - 无法在 Laravel 项目中使用 Visual Code 进行调试

javascript - 使用 npm 安装 grunt-browser-sync 时出错

transactions - 写一个TypeORM@Transaction方法,使用这个方法IDE报错 "Invalid number of arguments, expect 2"

ruby - Visual Studio 代码 : Disabling Error/Warning checks in for specific file type

Angular - 在应用程序组件中获取路由数据

html - hide 设置为 false 后聚焦输入

angular - Typescript 错误 - Angular AoT 构建失败 - Node.js + Ionic 移动应用程序

javascript - 为什么setTimeout的回调参数可以带参数

javascript - 如何使用最新的 Node.js 在 WebAssembly 上运行 "hello world"?

node.js - 如何找出事件循环中是否还有注册的事件(奖金: how many)