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 范围,这将很有用。
所以我在 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 范围,这将很有用。