typescript - 如何在Typescript中将类和接口(interface)分离到同一命名空间下的单独文件中

标签 typescript namespaces

这是一个关于命名空间和文件管理的 Typescript 问题。我在一个命名空间下有许多接口(interface)和类。我想将每个类或接口(interface)分割成自己的 .ts文件,然后能够聚合这些文件,这样我就可以在一些使用代码中声明命名空间,然后可以访问命名空间中的接口(interface)和类。例如,第一个文件,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;

关于typescript - 如何在Typescript中将类和接口(interface)分离到同一命名空间下的单独文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62597248/

相关文章:

javascript - typescript 错误 - 类型上不存在属性 'permission'

node.js - riotts (riot-ts) 和 jspm - 有人让它一起工作吗?

angular - 延迟加载获取当前路由模块

xml - 如何打印保留命名空间的 groovy 节点?

PHPUnit 找不到异常类

JavaScript 命名空间对象字面量

vb.net - 强制模块 namespace 限定

javascript - 在 React 中,使用函数式组件和仅返回 React 节点的函数有什么区别?

jquery通过分配给单个元素的命名空间解除绑定(bind)多个事件

typescript - 如何声明另一个接口(interface)类型的可迭代对象?