2014-09-19 57 views
0

我们的应用是建立在阶级,不模块(使参考下面的问题和答案:How do I declare a public enum in typescript?)。如何访问父类(打字稿)枚举

下面的代码结构的一个例子:

// GrandParent.ts 
enum DAYS {SUNDAY,MONDAY, TUESDAY, WEDNESDAY, THURSDAY,FRIDAY, SATURDAY}; 
class GrandParent { 
    // Some super cool stuff 
} 
export = GrandParent 

//Parent.ts 
import GrandParent = require('./GrandParent'); 
class Parent extends GrandParent { 
    // Some things even cooler 
} 
export = Parent 

// Child.ts 
import Parent = require('./Parent'); 
class Child extends Parent { 
    getMonday():DAYS{   //Could not find symbol 'DAYS' 
     return DAYS.MONDAY; 
    } 
} 
export = Child 

当我尝试transpile代码中,我得到webstorm以下错误:错误TS2095:找不到符号“日”。

有没有办法访问enumGrandParent表格Child

回答

1

当你说export =时,它是的声明,只有从文件中导出的东西。

如果你要导出从一个模块不止一两件事,使用多个export声明:

// GrandParent.ts 
export enum DAYS {SUNDAY,MONDAY, TUESDAY, WEDNESDAY, THURSDAY,FRIDAY, SATURDAY}; 
export class GrandParent { 
    // Some super cool stuff 
} 

//Parent.ts 
import GrandParent = require('./GrandParent'); 
class Parent extends GrandParent.GrandParent { 
    // Some things even cooler 
} 
var x = GrandParent.DAYS.MONDAY; 
export = Parent 
+0

Webstorm transpiler告诉我,这里只能一个出口在文件中。 – 2014-09-22 11:13:16

+0

无法重新创建。什么是转播输出?你使用什么打字稿? – lena 2014-09-22 13:33:47

0

这里是我做的

module portal{ 

enum DAYS {SUNDAY,MONDAY, TUESDAY, WEDNESDAY, THURSDAY,FRIDAY, SATURDAY}; 


} 


module portal.logic{ 

//now in this module you can access enum of parent module no need for require 

    export class GrandParent { 
// Some super cool stuff 
} 


class Parent extends GrandParent.GrandParent { 
// Some things even cooler 
} 
} 
+0

谢谢,但这是在模块的上下文中。因为我使用类,所以我只能在文件中使用一次导出。 – 2014-10-06 11:43:40