【发布时间】:2020-10-09 17:27:43
【问题描述】:
我正在尝试使用 Typescript(和 React/Redux)构建我的第一个项目,并努力在多个文件之间传递我的自定义类型:比如让我的动作类型可供动作创建者、reducer 和每个组件调度一些那些动作。
那么,这里的正确方法是什么:
- 在一个通用文件中声明所有自定义类型并在必要时导入?
- 在其相关文件中声明自定义类型并制作导入/导出网络?
- 我还没有想到的其他选项?
我知道这个问题可能会因为固执己见而被关闭,但我在 typescriptlang.org 和其他资源(包括 SO 主题)中都找不到答案。
【问题讨论】:
-
我总是选择#2,但我也愿意接受其他一些好的观点。
-
#2 具有使文件之间的依赖关系显式化的额外好处。请注意,您现在已经拥有“导入/导出网络”,但它是隐含的,阅读代码的人并没有意识到它 - 使得理解和重构更加困难。
-
我更喜欢#1,我认为每件事都有它的位置,它甚至更好,因为有时你需要一些非常复杂的打字,而且看你的组件的人不需要知道它是如何工作的,他们只是需要使用它。在另一个文件中使用也很有帮助,因为允许解释器不解释所有内容,从而更快地产生智能感知和输入错误。当然,这仅适用于组件或模块的范围类型,更“全局”的东西应该放在特定文件夹中,例如
types、interfaces或enums。 -
我更喜欢#1,好像我需要寻找我的类型或进行更改,我知道该去哪里。我只是从该模块导入我需要的类型。可能还值得一提的是,Typescript 项目本身使用单个
types.ts文件。如果您经常重复使用类型,将它们保存在一个公共文件中是有意义的。
标签: javascript reactjs typescript redux react-redux