我需要创建一个常量列表,例如,
const Days = {
YESTERDAY: -1,
TODAY: 0,
TOMORROW: 1,
}
我想要一种方法来约束中所有属性的类型
Days
,也就是说,如果我添加一个属性
BAD_DAY: true
,我想让编译器投诉。
我首先创造了
type ObjectOf<T> = {[k: string]: T};
const Days: ObjectOf<number> = {
A: true;
}
这确实给了我一个错误,但是,当我在
Days.
.我理解这是因为我把它变成了一个键控对象类型。
我可以像第一个示例那样完成代码,也可以使用编译器帮助完成第二个示例。我可以吃蛋糕吗?我想我想要一些类似Java枚举的东西,从某种意义上说,它是同一类型的对象的已知列表。
enum Days{
Today("SUN"), MONDAY("MON"), TUESDAY("TUES"), WEDNESDAY("WED"),
THURSDAY("THURS"), FRIDAY("FRI"), SATURDAY("SAT");
private String abbreviation;
public String getAbbreviation() {
return this.abbreviation;
}
Days(String abbreviation) {
this.abbreviation = abbreviation;
}
}