在Typescript中使用嵌套类的接口类

时间:2017-05-08 20:33:53

标签: typescript

我正在尝试编写一个也包含其他类的接口类,但是当我这样做时我收到错误但不确定是什么问题:

接口

export interface Languages{
   static English = class{
        id: number,
        section:number,
        name: string
   },
   static Chinese = class{
        id: number,
        section: number,
        name: string
   }
}

staticEnglish都显示错误说明:[ts] Property or signature expected. [ts] Cannot find name 'English'.

1 个答案:

答案 0 :(得分:1)

接口是合同,而不是实现。您的EnglishChinese成员是无法支持的界面。它们也是静态的,在接口上也是不正确的。你可以像这样重构它:

export interface Languages{
   English: Language;
   Chinese: Language;
}

export interface Language {
    id: number;
    section:number;
    name: string;
}

更好的设计是使用字典或带有查找的列表,特别是如果这是一个非固定大小的列表,可以在以后添加语言。像这样的东西:

export interface Languages{
   getLanguageByCode(isoCode:string): Language;
   getLanguageById(id: number): Language;
   allLanguages: Language[];
}