如何声明可以包含字符串或其他数组的数组类型?

时间:2016-05-19 12:58:56

标签: typescript

以下是类型为any的变量声明:

let errorMessagesBag: any = []

erroMessagesBag必须能够保存可变数量的值,这些值可以是字符串,也可以是字符串元组。 实施例

let errorMessagesBag = ["string1", ["tuplestring1", "otherString"], "string2"] // and so on

如何在这种情况下用正确的类型声明替换'any',所以它接受一个包含字符串或字符串元组的数组?

3 个答案:

答案 0 :(得分:2)

使用union types

let errorMessagesBag: (string | string[])[] = []

let errorMessagesBag: Array<string | string[]> = []

这两种语法是等价的。

答案 1 :(得分:2)

只是为了扩展正确的答案 - 使用全球自定义 type 声明:

type stringTypes = (string | string[]);
let errorMessagesBag: stringTypes[] = []

答案 2 :(得分:0)

怎么样:

 const a: Array<string|string[]> = ["string1", ["tuplestring1", "otherString"], "string2"]