如何解决如何限制打字稿中的枚举字符串值
我有可能采取行动的类型
type PersistentAction = 'park' | 'retry' | 'skip' | 'stop'
然后我想用动作定义枚举
enum persistentActions {
PARK = 'park',RETRY = 'retry',SKIP = 'skip',STOP = 'stop',}
如何将枚举值限制为PersistentAction
?
也许枚举类型错误吗?
解决方法
枚举只能存储静态值。
您可以使用常量对象代替枚举。
请记住,它仅适用于TS> = 4.1
type PersistentAction = 'park' | 'retry' | 'skip' | 'stop'
type Actions = {
readonly [P in PersistentAction as `${uppercase P}`]:P
}
const persistentActions: Actions = {
PARK : 'park',RETRY : 'retry',SKIP : 'skip',STOP : 'stop',} as const
如果您不能使用TS 4.1,我认为下一个解决方案值得一提:
type Actions = {
readonly [P in PersistentAction]: P
}
const persistentActions: Actions = {
park: 'park',retry: 'retry',skip: 'skip',stop: 'stop',} as const
但是在以上情况下,您应该小写密钥。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。