簡體   English   中英

Typescript 枚舉,數組作為值

[英]Typescript enum, array as value

這對我來說很奇怪

enum MessageStatusGroup {
  PENDING = [1, 2, 3],
  PUBLISHED = [4],
  DRAFT = [0],
}

我的 linter 出錯了在此處輸入圖像描述

typescript 是否有任何限制阻止將數組指定為值?

jna 和 TBA 是對的。

但也許您可以簡單地解決方法:

export const MessageStatusGroup = {
  PENDING : [1, 2, 3],
  PUBLISHED : [4],
  DRAFT : [0],
} as const;

它應該可以解決問題。 最后的 'as const' 將確保 MessageStatusGroup 的不變性,然后它可以像枚舉一樣使用。

是的,在 TypeScript 枚舉中,值必須是字符串或數字類型。 數組不是有效值。 這就是為什么您的 linter 會出錯。

TypeScript 提供基於數字和字符串的枚舉。

第三行在這里

您還可以指向其他枚舉

enum Foo {
  Bar = 'Baz'
}

enum PointTo {
  Bar = Foo.Bar
}

對於數字枚舉,您還可以指向返回數值的函數。

const numFunc = () => 4;

enum PointTo {
  Function = numFunc()
}

查看typescriptlang以獲取更多示例

簡短的回答是 TypeScript 支持數字和基於字符串的枚舉,不支持數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM