将string [] literal转换为字符串类型文字

时间:2017-06-21 20:54:26

标签: typescript typescript2.3

我有一个字符串数组:

let foo = ["bar", "baz"];

我希望执行与keyof type foo类似的操作,但是对于数组而不是对象:

type DESIRED_RESULT = "bar"|"baz";

有没有办法将数组中的所有唯一字符串转换为类型?

1 个答案:

答案 0 :(得分:1)

foo被推断为string[] 数组值根本不进入类型系统,所以这是不可能的。

如果你把它放在类型系统中,它becomes possible

let foo: ["bar", "baz"];
let bar: typeof foo[number] = "";
  

类型'""'不能分配给'"bar" | "baz"'类型。