如何限制typescript中的枚举字符串值
我有可能有行动价值的类型如何限制typescript中的枚举字符串值,typescript,enums,Typescript,Enums,我有可能有行动价值的类型 type PersistentAction = 'park' | 'retry' | 'skip' | 'stop' 然后我想用动作定义枚举 enum persistentActions { PARK = 'park' , RETRY = 'retry', SKIP = 'skip', STOP = 'stop', } 如何将枚举值限制为持久化? 可能枚举的类型不对?枚举只能存储静态值 可以使用常量对象而不是枚举 请记住,它仅在TS>=4.1时有效
type PersistentAction = 'park' | 'retry' | 'skip' | 'stop'
然后我想用动作定义枚举
enum persistentActions {
PARK = 'park' ,
RETRY = 'retry',
SKIP = 'skip',
STOP = 'stop',
}
如何将枚举值限制为持久化
?
可能枚举的类型不对?枚举只能存储静态值 可以使用常量对象而不是枚举 请记住,它仅在TS>=4.1时有效
键入PersistentAction='park'|'retry'|'skip'|'stop'
类型操作={
只读[P在PersistentAction中为`${uppercase P}`]:P
}
常量持久化:操作={
公园:"公园",,
重试:“重试”,
跳过:“跳过”,
停:"停",,
}常量
如果您不能使用TS 4.1,我认为下一个解决方案值得一提:
类型操作={
只读[P在PersistentAction中]:P
}
常量持久化:操作={
公园:"公园",,
重试:“重试”,
跳过:“跳过”,
停:"停",,
}常量
但在上述情况下,您应该将键小写。枚举只能存储静态值 可以使用常量对象而不是枚举 请记住,它仅在TS>=4.1时有效
键入PersistentAction='park'|'retry'|'skip'|'stop'
类型操作={
只读[P在PersistentAction中为`${uppercase P}`]:P
}
常量持久化:操作={
公园:"公园",,
重试:“重试”,
跳过:“跳过”,
停:"停",,
}常量
如果您不能使用TS 4.1,我认为下一个解决方案值得一提:
类型操作={
只读[P在PersistentAction中]:P
}
常量持久化:操作={
公园:"公园",,
重试:“重试”,
跳过:“跳过”,
停:"停",,
}常量
但在上述情况下,您应该将密钥小写。我们是否可以重用
PersistentAction
类型,以避免在persistentActions
中重复文字字符串?@matchish抱歉,我不明白。PersistentAction已经在Actions
typeI中重用了。我的意思是我们复制了文本字符串。在第一种情况下,这些字符串在类型范围内,在第二种情况下,它们是值。您不能将类型用作值。我们是否可以重用persistentation
类型以避免在persistentations
中复制文字字符串?@matchish抱歉,不理解。PersistentAction已经在Actions
typeI中重用了。我的意思是我们复制了文本字符串。在第一种情况下,这些字符串在类型范围内,在第二种情况下,它们是值。不能使用类型作为值