我觉得很奇怪
enum MessageStatusGroup { PENDING = [1, 2, 3], PUBLISHED = [4], DRAFT = [0], }
并且我的linter给出错误
在 typescript 中有没有任何限制,阻止指定数组作为值?
gab6jxml1#
jna和TBA是对的。但您可以简单地解决以下问题:
export const MessageStatusGroup = { PENDING : [1, 2, 3], PUBLISHED : [4], DRAFT : [0], } as const;
它应该可以做到这一点。末尾的“as const”将确保MessageStatusGroup的不变性,然后可以像枚举一样使用它。
cotxawn72#
简单地说,TypeScript支持numeric and string-based枚举,不支持数组。
ohfgkhjo3#
是的,在TypeScript枚举中,值必须是字符串或数字类型。数组不是有效的值。这就是为什么你的linter给出错误的原因。TypeScript提供数字枚举和基于字符串的枚举。Third line here也可以指向其他枚举
enum Foo { Bar = 'Baz' } enum PointTo { Bar = Foo.Bar }
对于数字枚举,还可以指向返回数值的函数。
const numFunc = () => 4; enum PointTo { Function = numFunc() }
查看typescriptlang了解更多示例
3条答案
按热度按时间gab6jxml1#
jna和TBA是对的。
但您可以简单地解决以下问题:
它应该可以做到这一点。末尾的“as const”将确保MessageStatusGroup的不变性,然后可以像枚举一样使用它。
cotxawn72#
简单地说,TypeScript支持numeric and string-based枚举,不支持数组。
ohfgkhjo3#
是的,在TypeScript枚举中,值必须是字符串或数字类型。数组不是有效的值。这就是为什么你的linter给出错误的原因。
TypeScript提供数字枚举和基于字符串的枚举。
Third line here
也可以指向其他枚举
对于数字枚举,还可以指向返回数值的函数。
查看typescriptlang了解更多示例