在Typescript

时间:2016-06-16 08:29:20

标签: typescript

从TypeScript 1.8开始,您可以创建一个字符串文字类型来定义类型,并为值列表创建一个具有相同名称的对象。它模仿字符串枚举的预期行为(基于David Create an enum with string values in Typescript上的David Sherret答案),如:

type MyStringEnum = "member1" | "member2";

const MyStringEnum = {
    Member1: "member1" as MyStringEnum,
    Member2: "member2" as MyStringEnum
};

我需要ExtendedMyStringEnum,它会将类型限制为所有MyStringEnum的类型并添加另一个。所以我这样做:

type ExtendedMyStringEnum = MyStringEnum | "member3";

const ExtendedMyStringEnum = {
    Member3: "member3" as ExtendedMyStringEnum
};

一切正常,除了我希望能够通过ExtendedMyStringEnum访问所有3个成员 - Member1,Member2和Member3,如:

ExtendedMyStringEnum.Member1
ExtendedMyStringEnum.Member2
ExtendedMyStringEnum.Member3

这对用户来说会更舒服(我认为),如果我需要遍历所有属性,我只需要为ExtendedMyStringEnum而不是MyStringEnum和ExtendedMyStringEnum。这可行吗?

0 个答案:

没有答案