0

我想声明一个模块并定义它的类型和接口而不重复我自己 - 所以我可以定义一个类型,如果它是可以共享的东西,可以从其他地方再次使用它。

因此,例如,如果我有一个名为:User 的模块,我想定义一个名为 User 的命名空间,并在其下定义一个名为 Address 的接口,并在 Address 下定义一个或多个类型。

现在,地址类型是我可能会在其他模块中使用的东西 - 不是特定于用户,也适用于订单。

所以我考虑创建一个接口目录并在这个目录中添加一些文件,每个接口的每个文件并将所有这些接口导入到 index.ts 文件中,以便可以从应用程序的任何位置导入它 - 实际上甚至从其他包和不在同一个应用程序中的模块和服务。

例如:

Interfaces
  Address.ts
  Contact.ts
  Role.ts
  index.ts

// index.ts

import Address from './Address'
import Contact from './Contact'
...etc

export default { Address, Contact }

但这行不通。因为 TS 只帮助编写代码,它不会将实际模块添加到代码中并将其导出,我上面提到的方式适用于实际模块,而不仅仅是类型和接口!

那么如何导出和导入 TS 对象(类型、接口、命名空间等)?

最佳做法是什么?你能提供一个演示结构吗?

4

1 回答 1

0

像这样的东西...来自代码沙箱的快照

我在这里制作了一个代码沙箱,它只是将一些数据打印到控制台以证明类型导入正在工作。这是基于拥有一个包含类型的 types.ts 文件,并将它们从那里导入到 index.ts 中,这样您就可以确实从 Typescript 中的另一个文件导入类型。

于 2021-04-06T17:51:51.303 回答