1. 元组的定义
数组合并了相同类型的对象,二元组(Tuple
)合并了不同类型的对象。
2. 元组的应用
let tom: [string, number];
tom[0] = 'Tom';
tom[1] = 23;
tom[0].split(' ');
tom[1].toFixed(2);
但是当直接对元组类型的变量进行初始化或者赋值时,需要提供所有元组类型中指定的项
let t:[string,number] ;
//缺少number类型,会被当做[string]元组
t = ['tom'] ;
//编译错误
- error TS2322: Type '[string]' is not assignable to type '[string, number]'.
Source has 1 element(s) but target requires 2.
//顺序不对,会被当做[number,string]元组
t= [24, 't'];
//编译错误
- error TS2322: Type 'string' is not assignable to type 'number'.
3. 元组中越界的元素
当添加越界元素时,他的类型会被限制为元组中每个类型的联合类型。
let cat : [string,number]
cat = ['cat' , 20] ;
cat.push('male') ;
//会提示错误
cat.push(true) ;
//编译错误
- error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string | number'.