繁体   English   中英

在大型 TypeScript 项目中共享类型的最佳方式?

[英]The best way to share types in a large TypeScript project?

我正在开发一个在 TypeScript 上编写的大型 React 应用程序。 我在单独的文件中声明了许多常见类型,每次我需要一个类型时我都会导入它。 它运作良好,但创建了大量不同的进口,我绝对不喜欢。

另一种选择是使用 .d.ts 文件来全局声明类型,并且能够在不显式导入的情况下使用类型。 这被认为是一种更好的做法还是我应该继续进口?

我认为对此的常识方法是最好的。 例如,我们现在正在一个大型 React 应用程序中工作,使用 monorepo 和共享组件的共享存储库。 所以我们有关于声明和组件之类的规则:

  • 如果您在多个地方使用类型/接口,它会进入 ~shared/lib/types.ts 文件
  • 如果您有一个在多个地方使用的组件,它会被重构到 ~shared/components 文件夹
  • 如果你扩展一个类型/接口,它可以在本地声明,但只要它不会被多次使用

一旦人们习惯了这些简单的规则,开发工作就会变得容易得多。 开发人员习惯于在需要时进行重构,但也会考虑如何编码。

  1. 将所有共享声明放在一个文件中,比如 index.d.ts。

  2. 将此文件放在一个文件夹中,例如 /src/typings

  3. 在 tsconfig.json 中,更新以下字段:

     {. "compilerOptions": {. "typeRoots": ["./node_modules/@types", "./src/typings"]. }. }.

现在这些类型将在所有文件中可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM