【发布时间】:2019-03-22 07:11:08
【问题描述】:
我希望在枚举中重用某些值。 有关如何实现此类功能的任何建议。
enum someEnum {
a = 'Some String',
b = 2,
};
enum extendedEnum {
c = 'string',
b = someEnum.b
}
type someEnumType<T extends someEnum> = T extends someEnum.a ? string :
T extends someEnum.b ? number : never;
type extendedEnumType<T extends extendedEnum> =
T extends extendedEnum.c ? string: // Gives Error
T extends extendedEnum.b ? number : never; // Gives Error
【问题讨论】:
-
请注意,如果您向同一个枚举
enum someEnum { c = 'string', b = someEnum.b }声明新值,打字稿会将它们合并在一起......但我不建议这样做,因为它会污染原始枚举 -
不幸的是,作为
enum无法做到这一点,即必须使用type解决方法之一,根据 TS 项目经理的说法,这不太可能改变。见github.com/microsoft/TypeScript/issues/…
标签: typescript typescript-typings