我正在尝试编写一个也包含其他类的接口类,但是当我这样做时我收到错误但不确定是什么问题:
接口
export interface Languages{
static English = class{
id: number,
section:number,
name: string
},
static Chinese = class{
id: number,
section: number,
name: string
}
}
static
和English
都显示错误说明:[ts] Property or signature expected.
[ts] Cannot find name 'English'.
答案 0 :(得分:1)
接口是合同,而不是实现。您的English
和Chinese
成员是无法支持的界面。它们也是静态的,在接口上也是不正确的。你可以像这样重构它:
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[];
}