例如,我有一个课程 A.ts
export class A(){
public constructor() {}
public method() : string {
return "hello from A";
}
}
和班级 B.ts
export class B(){
public constructor() {}
public method() : string {
return "hello from B";
}
public static methodStatic() : string {
return "hello from static B";
}
}
然后我想在一个文件Headers.ts
中导入所有这些imports {A} from "../A_path";
imports * as b from "../B_path";
//Or just to export it? Make it public.
export * from "../A_path";
export * from "../B_path";
Headers.ts只包含imports/exports
,没有类实现或任何其他代码。
然后是我的问题:我想在app.ts中使用 A
和 B
类来调用 Headers.ts
档案。
import * as headers from './HEADERS_path';
headers.A.method();
headers.B.method();
怎么做?
答案 0 :(得分:8)
好的,我找到了解决方案: 在 Headers.ts 文件中我只需要导出类:
export {A} from "../A_path";
export {B} from "../B_path";
然后使用 B 类,我需要在 app.ts 文件中导入 Headers.ts :
import * as headers from './HEADERS_path';
然后我将创建 B 类的实例并轻松调用它的方法:
let bInstance : headers.B = new headers.B();
//concrete method
bInstance.method();
//output will be what is expected: *"hello from B"*
//static method
headers.B.methodStatic();
//output will be what is expected: *"hello from static B"*
答案 1 :(得分:2)
您必须导出Headers.ts
export {A} from "../A_path";
export {B} from "../B_path";
例如,如果您在A_path
中有多个课程,则可以执行以下操作:
export * from "../A_path";
请注意,export * from
导出时default
无法使用。
您可以在MDN上阅读有关导入/导出的更多信息。