VS Code 中 web worker 的 typescript intellisense 损坏

Broken typescript intellisense with web workers in VS Code

所以我在 VS Code 中有一个 typescript/React 项目,其中我有几个不同的浏览器应用程序和一个网络工作者。 Web Worker 需要与 React 应用程序不同的类型。通过在每个应用程序和 Web Worker 文件夹中使用单独的 tsconfig.json 文件,我可以成功构建和 运行 项目。然而,VS Code intellisense 在网络工作者代码中被破坏了——它仍然在 lib.dom.d.ts 中查找类型,这是不正确的。 This article 似乎为这个问题提供了解决方案,但我完全采用了它规定的方法,在每个文件夹中放置单独的 tsconfig,根目录中没有 tsconfig,并且智能感知仍然无法正常工作。

文件夹结构大致为:

- src
  -app1
    tsconfig.json
  -app2 
    tsconfig.json
  -worker
    tsconfig.json

我没有包括 tsconfigs 本身的实际内容,因为我知道它们是正确的,因为在我构建时打字稿都可以完美编译。只是 vscode 在我查看 web worker 代码时似乎没有选择正确的 tsconfig。

事实证明,VSCode 会忽略一个 tsconfig.json 文件,如果它无效,结果是虽然它在我的构建过程中被接受,但 tsconfig 存在问题,即我指定了 "files":[./*.ts],但 files 只采用实际文件路径,而不是 glob。这不会在构建中造成问题,因为 tsify(browserify 插件)忽略了 tsconfig!

中的 files 条目

作为已接受答案的替代方案,您可以使用 Typescript triple-Slash Directives

例如:

/// <reference lib="WebWorker"/>

如果只有一个文件超出 tsconfig 范围,这将很有用。