js的数组在ts中被分为两种:数组和元组
数组的定义
const arr:number[];
arr=[1,2,3];
arr=['hello'];//报错
表示一个包含数字的数组
const arr=[];
arr.push(1);
arr.push('hello');
当定义一个空数组时,默认推断为any[]
定义只读数组
const arr:readOnly number[]=[1,2,3];
arr.push(5);//报错
被定义为只读数组后不可能被删除、添加和修改。实际上readOnly number[]是number[]的父级,普通数组继承的只读数组并扩展了例如push等的方法,所以子可以赋值给父,父不能赋值给子
let arr1:readonly number[] = [1, 2, 3];
let arr2:number[] = [1,2,3,4,5];
arr1.push(5);//报错
arr1=arr2;
console.log('arr1:', arr1);
只读数组可以被重新赋值,但是不能调用push等方法改变里边的值
多维数组
let arr: number[][] = [[1,2,3],[4,5,6],[7,8,9]];//多维数组
let arr1:readonly number[][] = [[1,2,3],[4,5,6],[7,8,9]];//多维只读数组