首页 > 解决方案 > 如何在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:
    } 
  }
}

我将非常感谢任何人可以提供的任何帮助。

提前致谢。

标签: typescriptnamespaces

解决方案


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;

推荐阅读