如何在TypeScript中声明不同类型的对象数组?

Ser*_*rov 5 typescript

我有一个数组,其中的元素表示TextInput,DateInput,Checkbox等类型的HTML形式.

如何将变量类型声明为可以是任何这些类型的元素数组?

像这样的东西

(TextInput | DateInput | Checkbox)[]
Run Code Online (Sandbox Code Playgroud)

Nit*_*mer 7

你可以做:

let myArray: Array<TextInput | DateInput | Checkbox> = [];
Run Code Online (Sandbox Code Playgroud)

你也可以这样做:

type MyArrayTypes = TextInput | DateInput | Checkbox;
let myArray: MyArrayTypes[] = [];
Run Code Online (Sandbox Code Playgroud)

这两种定义数组的方式是符合条件的:

let a: number[] = [];
// is just like:
let b: Array<number> = [];
Run Code Online (Sandbox Code Playgroud)

但有时第二种方式更合适,就像你的情况一样.