1. 元组的定义

数组合并了相同类型的对象,二元组(Tuple)合并了不同类型的对象。

2. 元组的应用

  1. let tom: [string, number];
  2. tom[0] = 'Tom';
  3. tom[1] = 23;
  4. tom[0].split(' ');
  5. tom[1].toFixed(2);

但是当直接对元组类型的变量进行初始化或者赋值时,需要提供所有元组类型中指定的项

  1. let t:[string,number] ;
  2. //缺少number类型,会被当做[string]元组
  3. t = ['tom'] ;
  4. //编译错误
  5. - error TS2322: Type '[string]' is not assignable to type '[string, number]'.
  6. Source has 1 element(s) but target requires 2.
  7. //顺序不对,会被当做[number,string]元组
  8. t= [24, 't'];
  9. //编译错误
  10. - error TS2322: Type 'string' is not assignable to type 'number'.

3. 元组中越界的元素

当添加越界元素时,他的类型会被限制为元组中每个类型的联合类型

  1. let cat : [string,number]
  2. cat = ['cat' , 20] ;
  3. cat.push('male') ;
  4. //会提示错误
  5. cat.push(true) ;
  6. //编译错误
  7. - error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string | number'.