Javascript 在TypeScript中导出类和类型的最佳方法

Javascript 在TypeScript中导出类和类型的最佳方法,javascript,typescript,Javascript,Typescript,随后(~2016年)和typescript的官方文件 说明类模块声明文件应使用名称空间以下方式: export=MyClass; 声明类MyClass{ 构造函数(someParam?:字符串); someProperty:字符串[]; myMethod(选项:MyClass.MyClassMethodOptions):编号; } 声明命名空间MyClass{ 导出接口MyClassMethodOptions{ 宽度?:数字; 高度?:数字; } } 如果我将此文档应用到我的项目中,我的lin

随后(~2016年)和typescript的官方文件

说明类模块声明文件应使用
名称空间
以下方式:

export=MyClass;
声明类MyClass{
构造函数(someParam?:字符串);
someProperty:字符串[];
myMethod(选项:MyClass.MyClassMethodOptions):编号;
}
声明命名空间MyClass{
导出接口MyClassMethodOptions{
宽度?:数字;
高度?:数字;
}
}
如果我将此文档应用到我的项目中,我的linter会用
无名称空间
规则()向我尖叫:

ES2015模块语法优于自定义TypeScript模块和名称空间。eslint@typescript-eslint/no名称空间 偷窥问题(⌥F8)

而且

MyClass已定义

这仍然是处理类模块中类型的首选方法吗

编辑 该类在默认情况下保持导出状态是很重要的

解决方案
您可以自行导出类和接口,而无需命名空间:

export interface MyClassMethodOptions {
  width?: number;
  height?: number;
}

export default class MyClass {
  constructor(someParam?: string);

  someProperty: string[];

  myMethod(opts: MyClassMethodOptions): number;
}

嘿此解决方案的问题是默认情况下不会导出MyClass。在我的模块中就是这样。所以我会有这样一个错误:`×TypeError:myClass不是一个构造函数或者更新了我注释中的代码以将类作为default导出,现在这不是一个类型,而是实际的类否?你想导出哪些类型?我的错,这实际上是可行的。我从class.ts中导入了这个类,并将它导出到这个文件中,它成功了。谢谢
export interface MyClassMethodOptions {
  width?: number;
  height?: number;
}

export default class MyClass {
  constructor(someParam?: string);

  someProperty: string[];

  myMethod(opts: MyClassMethodOptions): number;
}