将 string[] 字面量转换为 string 类型字面量
Convert string[] literal to string type literal
我有一个字符串数组:
let foo = ["bar", "baz"];
我希望执行类似于 keyof type foo
的操作,但针对的是数组而不是对象:
type DESIRED_RESULT = "bar"|"baz";
有什么方法可以将数组中所有唯一的字符串转换为一个类型吗?
foo
被推断为 string[]
.
数组值根本不进入类型系统,所以这是不可能的。
如果你把它放在类型系统中,它becomes possible:
let foo: ["bar", "baz"];
let bar: typeof foo[number] = "";
Type '""'
is not assignable to type '"bar" | "baz"'
.
我有一个字符串数组:
let foo = ["bar", "baz"];
我希望执行类似于 keyof type foo
的操作,但针对的是数组而不是对象:
type DESIRED_RESULT = "bar"|"baz";
有什么方法可以将数组中所有唯一的字符串转换为一个类型吗?
foo
被推断为 string[]
.
数组值根本不进入类型系统,所以这是不可能的。
如果你把它放在类型系统中,它becomes possible:
let foo: ["bar", "baz"];
let bar: typeof foo[number] = "";
Type
'""'
is not assignable to type'"bar" | "baz"'
.