monorepo 中的 TypeScript 文件带有 .js 扩展名,因此 IDE 不理解这些文件中的 TypeScript

TypeScript files in monorepo is with .js extensions so IDE doesn't understand TypeScript in these files

我刚刚克隆 React monorepo 并在 WebStorm IDE 中将文件夹作为新项目打开。然而,出于某种原因,这个 repo 中的所有 .js 文件实际上都是用 TypeScript 编写的,因此 IDE 无法弄清楚这些文件中编写的 TypeScript。

例如:

//ReactHooks.js
export function useTransition(): [boolean, (() => void) => void] {
                                 ^Type annotations can only be used in TypeScript files.ts(8010) 
  const dispatcher = resolveDispatcher();
  return dispatcher.useTransition();
}

我在一些回购协议中看到过它,但永远无法理解这些项目如何在本地配置 IDE 以了解这些文件实际上是 ts 文件。

我不知道为什么 React 团队决定为 TS 文件使用 .js 扩展名,无论如何,我如何配置 IDE 才能理解这些文件实际上是 TS 文件?

(顶层没有webpack.config,React 团队实际上是如何以这种方式处理这个 repo 的?)

在网上寻找解决方案,但一无所获。

这些不是 Typescript 类型注释,它们是 flow type annotations,它们放在普通的 .js 文件中。

关于将它们与 Webstorm 集成,here's a post JetBrains(IDE 的制造者)介绍了如何进行集成。

也许在更元的层面上,请理解任何大受欢迎的东西都会对理解源代码有相当高的标准:它几乎肯定会有复杂的架构、复杂的构建管道等。文档只能给它涂上这么多糖衣。例如,如果您查找为 Linux 内核做贡献的初学者指南(如果有这样的东西),那么它几乎肯定会 start 假设您'我已经是 专家 C 编码器,它不会解释如何处理头文件或什么是 valgrind,或者硬件中断如何工作等。

或者更通俗地表达相同的观点: