代码之家  ›  专栏  ›  技术社区  ›  dance2die

如何将字符串数组“variable”转换为typescript类型?

  •  -1
  • dance2die  · 技术社区  · 6 年前

    我想知道如何将字符串变量数组转换为脚本类型。

    注意:有两个SO答案已经解决了这个问题,但是字符串被硬编码以保持字符串的值不变。

    这两个答案都以直线方式传递数组,以将数组中的字符串值保持为文本。 但当您将数组作为变量传递时,它将无法工作。

    在线传递值是有效的。

    Edit TypeScript - Array to Literal - Hardcode works in-line works

    但将值作为变量传递是行不通的

    Edit TypeScript - Array to Literal - Doesn't work enter image description here

    问题

    那么,如何创建一个类型来限制中允许的字符串值列表呢 domElements 作为变量 asLiterals ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   unional    6 年前

    将数组文字指定给变量时,会将其加宽以匹配典型行为。

    因此,变量 domElements 是一种 string[] ('a' | 'div' | ...)[]

    答案在您自己的代码中。使用与您的应用程序类似的功能 asLiterals() 创建文字数组。

    export function literalArray<T extends KeyTypes>(...entries: T[]): T[] {
        return entries
    }
    

    您也可以在中找到此函数 type-plus