有很多资源可以解释声明文件(d.ts)是用于:
- 声明在你的TS项目中使用的JS库的类型;或
- 允许其他TS项目使用你的JS库。
让我感到困惑的是,像material-ui这样的项目正在使用d.ts文件仅仅存储类型,并使它们在自己的代码中被使用。
此时我开始怀疑,当我们可以有types.d.ts
文件并且只需消耗其接口/类型而不需要导出/导入时,为什么要有types.ts
文件?使用其中一个的优缺点是什么?
有很多资源可以解释声明文件(d.ts)是用于:
让我感到困惑的是,像material-ui这样的项目正在使用d.ts文件仅仅存储类型,并使它们在自己的代码中被使用。
此时我开始怀疑,当我们可以有types.d.ts
文件并且只需消耗其接口/类型而不需要导出/导入时,为什么要有types.ts
文件?使用其中一个的优缺点是什么?
在大多数情况下,你应该只编写typescript文件,让编译器为你生成.d.ts
文件。这几乎总是正确的选择,除非:
.d.ts
文件可以帮助你覆盖这些类型。我认为Material UI属于第一组。Deno属于第三组。
tl;dr:坚持编写typescript。编写javascript和单独的类型文件极不人性化,并且会失去很多typescript的好处。
.d.ts
.ts
.ts
扩展名,否则请使用.d.ts
。例如,如果您的项目是一个库,让其他人仅使用JavaScript并从.d.ts
文件中获取有用的类型信息。 - Ardy Febriansyah