【问题标题】:How to access an enum in parent class (typescript)如何访问父类中的枚举(打字稿)
【发布时间】:2014-09-19 19:42:17
【问题描述】:

我们的应用程序是基于类构建的,不是模块(参考以下问答: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

当我尝试转换代码时,我在 webstorm 中收到以下错误:错误 TS2095:找不到符号 'DAYS'。

有没有办法以GrandParent 形式访问enum Child

【问题讨论】:

    标签: enums typescript webstorm


    【解决方案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
    

    【讨论】:

    • Webstorm 转译器告诉我文件中只能有一个导出。
    • 无法重新创建。转译器输出是什么?你用什么打字稿版本?
    【解决方案2】:

    这就是我的工作

    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
     }
    }
    

    【讨论】:

    • 谢谢,但这是在模块的上下文中。由于我使用类,我只能在文件中使用一次导出。
    猜你喜欢
    • 2018-10-23
    • 2018-10-29
    • 2020-04-30
    • 1970-01-01
    • 2017-06-20
    • 2017-03-09
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多