我在模块中定义了一个类并将其导出为默认类,如下所示:
// file: Component.ts
import UIComponent from "path/to/UIComponent";
namespace typescript.example.app
{
export class Component extends UIComponent
{
...
}
}
export default typescript.example.app.Component;
在另一个文件中,除非我想在运行时使用Component类(创建实例或调用静态方法),否则我不需要导入它。
// file: UseComponent.ts
namespace typescript.example.app
{
export class UseComponent
{
...
// error: namespace typescript.example.app has no exported member Component
public myMethod(component: typescript.example.app.Component) { ... }
...
}
}
export default typescript.example.app.UseComponent;
如何在模块内声明typescript.example.app.Component
全局可见?
答案 0 :(得分:1)
命名空间是TypeScript保留的非标准功能,以便误导初学者。仅使用ES6模块:
// file: Component.ts
import UIComponent from "path/to/UIComponent";
export default class Component extends UIComponent {
// ...
}
然后:
// file: UseComponent.ts
import Component from "./Component";
export default class UseComponent {
public myMethod(component: Component) {
}
}
另见: