【发布时间】:2018-04-23 08:33:08
【问题描述】:
我已经阅读了几十页,试图找出在 TypeScript 中设置类型定义的最佳方法。
- 我曾经在我的项目中的某处有一个
typings.ts文件,然后会通过执行类似的操作将类型导入每个需要的文件中
import {IMyCustomType} from './typings';
在我的类型文件中,我会声明我的类型:
export interface IMyCustomType {...}
- 在使用此样板文件:https://github.com/rokoroku/react-redux-typescript-boilerplate/tree/master/types 进行一些工作后,我意识到他们在项目根目录的
types文件夹中使用了models.d.ts。
他们使用declare interface IMyCustomType {..}而不是export interface IMyCustomType {..}
这种设置对我来说有一个很大的优势:我不需要显式导入每个文件中的类型,并且接口可以直接在整个项目中使用。
问题:
1) 编译时自动导入所有**/*.d.ts文件是否正确?
2) 使用declare 并使所有类型对整个项目可用是一种好习惯吗?
3) 是否有标准的目录路径和名称,我应该在其中放置类型定义?
基本上,我试图让我的全局接口在我的项目中随处可用,而无需显式导入它们。这是我应该做的事情吗?如何设置我的项目来实现这一点?
更新
在向我的团队提出这个问题后,大多数人都反对使用环境类型,因此我们决定在需要时导入类型。为了使这更容易,我们依靠我们的 IDE 自动导入所述类型。
【问题讨论】:
-
您能否详细说明您的团队决定不使用环境类型的原因?
-
我不记得前段时间的情况了,但 4 年后我没有看到直接声明和导入类型有任何问题。使用环境类型会污染全局空间并产生潜在的冲突。仅使用环境类型来声明在您的应用之外声明的模块或全局变量的类型
标签: javascript typescript typescript-typings