3 回答
TA贡献2011条经验 获得超2个赞
TypeScript 2.4+
现在,您可以直接将字符串值分配给枚举成员:
enum Season {
Winter = "winter",
Spring = "spring",
Summer = "summer",
Fall = "fall"
}
有关更多信息,请参见#15486。
TypeScript 1.8以上
在TypeScript 1.8+中,您可以创建一个字符串文字类型来定义该类型,并为值列表创建一个名称相同的对象。它模仿字符串枚举的预期行为。
这是一个例子:
type MyStringEnum = "member1" | "member2";
const MyStringEnum = {
Member1: "member1" as MyStringEnum,
Member2: "member2" as MyStringEnum
};
它将像字符串枚举一样工作:
// implicit typing example
let myVariable = MyStringEnum.Member1; // ok
myVariable = "member2"; // ok
myVariable = "some other value"; // error, desired
// explict typing example
let myExplicitlyTypedVariable: MyStringEnum;
myExplicitlyTypedVariable = MyStringEnum.Member1; // ok
myExplicitlyTypedVariable = "member2"; // ok
myExplicitlyTypedVariable = "some other value"; // error, desired
确保键入对象中的所有字符串!如果不这样做,则在上面的第一个示例中,该变量将不会隐式键入为MyStringEnum。
- 3 回答
- 0 关注
- 668 浏览
添加回答
举报