我想知道如何将字符串变量数组转换为键入脚本类型。
注意:已经有两个SO答案可以解决这个问题,但是字符串通过硬编码传递,以保持字符串的值不变。
两个答案都直接传递一个数组,以将字符串值保留为文字。 但是,当您将数组作为变量传递时,它将无法正常工作。
那么,如何创建一种类型来限制domElements
中的允许字符串值列表作为asLiterals
的变量?
答案 0 :(得分:1)
将数组文字分配给变量后,它会扩展以匹配典型行为。
因此,变量domElements
的类型为string[]
而不是('a' | 'div' | ...)[]
答案在您自己的代码中。使用与asLiterals()
类似的函数来创建文字数组。
export function literalArray<T extends KeyTypes>(...entries: T[]): T[] {
return entries
}
您还可以在type-plus
库中找到此功能。