【问题标题】:TypeScript files in monorepo is with .js extensions so IDE doesn't understand TypeScript in these filesmonorepo 中的 TypeScript 文件具有 .js 扩展名,因此 IDE 无法理解这些文件中的 TypeScript
【发布时间】:2021-08-30 14:50:24
【问题描述】:

我刚刚克隆了 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();
}

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

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

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

在网上寻找解决方案,但找不到任何东西。

【问题讨论】:

  • 抱歉,您的实际问题是什么?
  • 请参阅编辑@JaredSmith
  • 不是打字稿,是flow type annotations。你可能会发现this helpful
  • @JaredSmith 提供了一些有用的链接,但您应该始终阅读包含它的任何 repo 的 How to Contribute 文档,因为它会引导您完成所有这些。例如,Flow 上有一个部分。
  • 谢谢@JaredSmith,你可以写你的 cmets 作为答案,我会接受它

标签: javascript reactjs typescript webpack webstorm


【解决方案1】:

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

关于如何将它们与 Webstorm 集成,JetBrains(该 IDE 的制造商)here's a post 了解如何做到这一点。

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

或者更通俗地说:

【讨论】:

  • 顺便说一句,got what i wanted.。所以一个人可以简单地走进 React 代码库(在浪费了太多时间之后)@Jared
  • @EliavLouski 不会称之为“简单”,哈哈,但我很高兴你得到了你需要的东西!只是不要把它投入生产......
猜你喜欢
  • 2017-10-13
  • 2016-09-01
  • 2021-03-24
  • 1970-01-01
  • 2019-05-18
  • 2016-09-27
  • 2018-09-25
  • 2020-04-03
  • 1970-01-01
相关资源
最近更新 更多