使导出的类全局可见

时间:2017-10-08 16:39:59

标签: typescript

我在模块中定义了一个类并将其导出为默认类,如下所示:

// 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全局可见?

1 个答案:

答案 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) {
  }
}

另见: