关于枚举:如何在typescript中迭代字符串文字类型

How to iterate a string literal type in typescript

如何在typescript中迭代字符串文本类型?

例如,我定义了这个类型

1
type Name ="Bill Gates" |"Steve Jobs" |"Linus Torvalds";

我想这样迭代

1
2
3
for (let name of Name) {
    console.log("Possible name:" + name);
}

或者这在typescript中是不可能的?


因为typescript 2.4,所以可以使用字符串类型的枚举。这些枚举可以很容易地迭代:

https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/


由于typescript只是一个编译器,所以运行时不存在任何类型信息。这意味着不幸的是,您不能迭代一个类型。

根据您尝试执行的操作,可以使用枚举来存储名称的索引,然后在数组中检索这些索引。


afaik无法将字符串联合(类型)"提升"到运行时JS(值)。

我发现最接近的解决方案是使用enum:示例/相关问题。