何时使用 types.ts 与 types.d.ts

ale*_*17k 16 typescript .d.ts

有许多资源解释声明文件 (d.ts) 对于以下任一方面很有用:

  • 声明 TS 项目中使用的 JS 库的类型,或者
  • 允许其他 TS 项目使用您的 JS 库

让我感到困惑的是,许多项目(例如Material-ui)都使用 d.ts 文件来简单地存储类型并在自己的代码中使用它们。

此时我开始质疑,types.ts当我们可以拥有文件并types.d.ts简单地使用其接口/类型而不需要导出/导入时,拥有必须导出/导入类型和接口来使用它们的文件有什么意义?使用其中一种相对于另一种有哪些优点和缺点?

Eve*_*ert 18

在大多数情况下,您应该只编写打字稿文件,然后让编译器.d.ts为您生成文件。这几乎总是正确的选择,除了:

  1. 由于某种原因,您不被允许编写打字稿,并且您必须编写纯 JavaScript 的所有内容。
  2. 您正在从另一个包创建或修改类型。.d.ts文件可以帮助您覆盖这些类型。
  3. 您有一个非常大的代码库。

我为此设想了第 1 组中的 Material UI。Deno 属于第 3 组。

tl;dr:坚持写打字稿。编写 javascript 和单独的类型文件非常不符合人体工程学,并且您会失去 Typescript 的大量优势。


Ard*_*yah 9

.d.ts

  • 指示不应编译此文件
  • 放置声明类型并将在 js 上实现
  • 仅类型文件

.ts

  • 普通打字稿源代码
  • 必须编译的可执行代码

  • 如果您的项目完全使用打字稿,则只需使用`.ts`,否则使用`.d.ts`示例,您的项目是库,这让其他人只使用javascript并从`.d.ts`文件中获取有用的类型 (4认同)