首页 > 解决方案 > 如何防止 TypeScript 在我的浏览器定位脚本中看到 Node.js 类型?

问题描述

我正在使用 TypeScript 创建一个 Chrome 扩展程序并遇到了障碍。最初一切正常,但是当添加新的依赖项(webpack)时,它带来的类型定义导致我的工作脚本现在产生编译错误,其中节点类型与 Chrome 类型冲突。

通过以下步骤可以看到问题:

  1. mkdir type-conflict && cd type-conflict
  2. npm init
  3. npm install -D @types/chrome typescript
  4. npx tsc --init
  5. echo 'const timeout: number = setTimeout(() => console.log(timeout), 0);' > example.ts
  6. npx tsc- 这工作得很好并产生 example.js
  7. npm install -D @types/webpack webpack— 这会传递节点类型
  8. npx tsc— 这一次,您收到错误“example.ts(1,7): error TS2322: Type 'Timeout' is not assignable to type 'number'。”

我想查看节点类型的唯一脚本是 webpack 配置脚本本身,它有自己的tsconfig-for-webpack-config.json; 如何让 TypeScript 忽略主要的这些类型,tsconfig.json以便我的脚本可以再次使用浏览器类型?

标签: typescript

解决方案


推荐阅读