2017-07-18 44 views
0

例如,我有一个类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称他们在Headers.ts文件中使用AB类。

import * as headers from './HEADERS_path'; 
headers.A.method(); 
headers.B.method(); 

该怎么做?

回答

0

OK我找到了解决办法: 文件Headers.ts在我只需要出口类:

export {A} from "../A_path"; 
export {B} from "../B_path"; 

,然后使用类,我需要进口Headers.tsapp.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"* 
0

你必须所有类导出Headers.ts

export {A} from "../A_path"; 
export {B} from "../B_path"; 

如果你有多个班A_path例如,你可以这样做:

export * from "../A_path";

请注意,您不能使用export * fromdefault出口。

您可以在MDN上阅读更多关于导入/导出的内容。

相关问题