以下是类型为any的变量声明:
let errorMessagesBag: any = []
erroMessagesBag必须能够保存可变数量的值,这些值可以是字符串,也可以是字符串元组。 实施例
let errorMessagesBag = ["string1", ["tuplestring1", "otherString"], "string2"] // and so on
如何在这种情况下用正确的类型声明替换'any',所以它接受一个包含字符串或字符串元组的数组?
答案 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"]