【发布时间】:2020-11-22 19:06:56
【问题描述】:
我最近开始使用打字稿。
我有一个打字稿项目设置,其中有很多用打字稿编写的 React 组件。
这些 typescript 组件通常会导出组件本身,为了方便开发,我已经将这个 typescript 组件所需的所有类型提取到一个单独的文件中。现在通常你必须在你的组件中导入这些类型才能使用它,但由于它很麻烦,团队中的一些人想出了一个想法,将这些包含类型的单独文件命名为types.d.ts(或任何.d.ts )。这使得类型在整个项目中全局可用,无需在任何地方显式导入类型。
现在,我知道类型声明文件仅在我在我的 typescript 项目中使用 javascript 组件的情况下才需要,并且如果我想对该 javascript 组件进行类型检查。在这种情况下,我可以从外部获取类型声明文件(例如,DefiniteTyped),或者我可以创建一个本地声明文件。 这不是我在这里使用声明文件的目的。
但我想了解这种用法有什么问题?
- 全局公开所有类型是不是错了(请注意,这些类型中的大多数只是组件内部需要,其他使用该组件的组件只需要一些类型)?
- 编译器或打字稿设置是否会因此而出现问题?
- 我已阅读有关生成声明文件的编译器选项的信息,此设置会对此产生干扰吗?
注意:这个名为 d.ts 的单独文件并不真正遵循声明文件可能需要的任何特定准则。这只是有一些常规的接口声明
【问题讨论】:
标签: javascript reactjs typescript