number[](推荐)与 Array<number>"> number[](推荐)与 Array<number>"> number[](推荐)与 Array<number>">
TypeScript 词条目录
前端Wiki/TypeScript/基础/基础类型

数组与元组

数组两种写法:number[](推荐)与 Array<number>(泛型写法,两者等价)。元组(tuple)是"固定长度、每项类型可不同"的数组,适合坐标、键值对这类结构确定的小场景。

注意元组在运行时仍是普通数组:越界访问不会被拦截,push 一个不合类型的元素编译期也会报错(除非用 any 污染)。结构稍复杂就应该换接口或类型别名。

  • number[] 等价 Array,前者更简洁
  • 元组 [number, string]:第 0 项数字、第 1 项字符串,位置即类型
  • 只读数组:readonly number[] 或 ReadonlyArray,禁止增删
TS
let nums: number[] = [1, 2, 3];         // 数字数组
let names: Array<string> = ['a', 'b']; // 泛型写法,等价

// 元组:位置对应类型
let point: [number, number] = [10, 20];
let entry: [string, number] = ['age', 18];
// entry = ['age', '18'];               // ❌ 第二项必须是 number
// entry[2] = 0;                        // ❌ 长度 2,没有第 3 项

// 只读数组:编译期禁止修改
const ro: readonly number[] = [1, 2, 3];
// ro.push(4);                          // ❌ readonly 上不存在 push
JS
// 编译后没有任何元组痕迹:就是数组
let nums = [1, 2, 3];
let names = ['a', 'b'];
let point = [10, 20];
let entry = ['age', 18];
const ro = [1, 2, 3];
console.log(nums, names, point, entry);
console.log('元组运行时就是数组:', Array.isArray(entry));   // true
本节要点数组用 number[];元组只在"结构确定且短"时用,复杂结构交给接口。
🔗 相关词条JavaScriptHTML闭包