typescript - 如何在Typescript中将类和接口分离到同一命名空间下的单独文件中
问题描述
这是一个关于命名空间和文件管理的 Typescript 问题。我在一个命名空间下有许多接口和类。我想将每个类或接口分割成它自己的.ts
文件,然后能够聚合这些文件,这样我就可以在一些消费代码中声明命名空间,然后可以访问命名空间中的接口和类。例如,第一个文件icontact.ts
:
export namespace mynamespace {
export interface IContact {
firstName: string;
lastName: string;
}
}
第二个文件,contact.ts
:
import {IContact} from './icontact.ts';
export namespace mynamespace {
export class Contact implements IContact {
firstName: string;
lastName: string;
constructor(firstName: string, lastName: string){
this.firstName = firstName;
this.lastName = lastName:
}
}
}
我将非常感谢任何人可以提供的任何帮助。
提前致谢。
解决方案
Typescript 中的命名空间是描述模块结构的一种方式,但它们不会生成任何自动为您执行此操作的代码。
您可能想要做的是创建一个文件(可能index.ts
在某个目录中),然后从该文件中导入您想要的“命名空间”中的所有内容,然后重新导出。
index.ts
此类文件的示例:
export { Foo } from './foo';
export { Bar } from './bar';
现在如果有东西使用这个模块,他们可以这样引用它:
import * as MyNamespace from './some/directory';
let foo: MyNamespace.Foo;
let bar: MyNamespace.Bar;
推荐阅读
- data-structures - 在最短路径变化的图形的情况下是真的吗?
- caching - 虚拟地址和物理地址有哪些字段?
- mongoose - 如何使用 graphql 对 mongoose 查询进行验证
- graphql - 在 react-carousel 中通过 graphql 加载的 gatsby-sharp 图像未激活
- scala - 如何在 EMR 上使用 Spark 3 为 Scala 对象解决“加载类失败”
- kotlin - 让 Recycler View Items 在文本视图中显示它们的位置
- android - 运行测试时,Gradle 无法从另一个模块中找到类
- html - 在循环 gif 结束时闪烁?
- c - C - 有什么方法可以多次初始化 srand ?
- flutter - 应该为从 git 缓存的 pub 包自动生成 .packages 文件吗?