元组是已知长度、每个位置类型可以不同的特殊数组:type RGB = [number, number, number]。它天然适合表达坐标、颜色、键值对等多类型定长数据。与普通数组不同,元组限制了长度与每个槽位的类型,越界访问或写入其他类型都会报错,比 any[] 安全得多。
标签元组让可读性更好:type Point = [x: number, y: number],编辑器悬停会显示参数名。rest 元组与 const 断言的元组在函数参数收窄中经常出现。实际开发中元组最常配合 React 的 useState 出现——它的返回值就是由值与设置函数组成的二元组。
type RGB = [number, number, number]; const color: RGB = [255, 128, 0]; type Point = [x: number, y: number]; // 标签元组 function move(p: Point, dx: number): Point { return [p[0] + dx, p[1]]; } // color.push(1); // 报错:长度固定为 3 move([1, 2], 5); // [6, 2]