Gatsby with Typescript 使用 tsconfig.json

Does Gatsby with Typescript Use tsconfig.json

大量博客文章和 using-typescript example on Gatsby JS's website show using a tsconfig.json file when using the automatically included gatsby-plugin-typescript 对 Gatsby 的 TypeScript 支持。 我认为 tsconfig.json 文件没有被用于配置,想问问我是否正确。

Gatsby 使用 @babel/plugin-transform-typescript 将 TS 编译为 JS,并且 Babel 插件具有 detailed docs 模仿 tsc TypeScript 编译器的选项。文档是这样说的:

对 tsconfig.json 的更改不会反映在 babel 中。构建过程将始终表现得好像 isolatedModules 已打开,但是有 Babel-native 替代方法可以设置很多 tsconfig.json 选项。

为什么 Gatsby 的所有 TypeScript 设置都显示一个 tsconfig.json 文件和配置,而该文件似乎从未被 Gatsby 使用,我是否遗漏了一些原因?

在 Gatsby 项目中维护 tsconfig.json 文件至少有三个原因:

  • 像 Jest 这样的测试框架不会使用内部 Gatsby 配置,需要一些关于如何处理 TypeScript 文件的指导
  • VS Code 等代码编辑器面临与 Jest 类似的限制,因此例如 VSCode 中的 TypeScript 服务器需要配置
  • 像 ESLint 这样的 Linting 库也使用 tsconfig.json 文件。

一个严重的问题是,将 TypeScript 与 Babel 一起使用(就像 Gatsby 所做的那样)不会进行类型检查,因此无论您 运行 Gatsby 开发服务器在 (像控制台)和您正在使用的其他工具,例如 VS Code 的“输出”选项卡。