[英]Is is possible to iterate over the keys of a union type?
例如,是否可以在 Typescript 中迭代聯合類型的鍵,類似於如何使用Object.keys(someVar).map()
?
示例類型可能是:
type Status = "status_1" | "status_2" | "status_3"
我見過的另一種方法是創建一個不可變數組,然后使用帶有索引的typeof
運算符來模仿此功能,但這似乎很笨拙
export const CaseStatuses = ["status_1", "status_2", "status_3"] as const;
export type CaseStatus = typeof CaseStatuses[number];
除了不可變數組之外,您還可以使用枚舉類型而不是聯合類型。 它是唯一在編譯時未被擦除的類型(枚舉在編譯時被轉譯為 object)。 然后,使用Object.keys()
/ Object.values()
對其進行迭代。
enum Status {
status_1 = "status_1",
status_2 = "status_2",
status_3 = "status_3",
}
// Iterate over it
console.log(Object.values(Status))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.