TypeScript数组的定义与使用详解
作者:小括号时间:2026-10-25 20:25:11浏览:604
本文详解TypeScript中数组的多种定义方式,包括直接初始化、Array构造函数及泛型声明。重点解析未指定类型时的any推断机制、多维数组(含泛型)构建、类数组处理、解构赋值、接口描述及for...of迭代用法,提供完整代码示例与注意事项。
基本定义
声明数组时直接初始化
// 基本定义
let arr:number[] = [1,2,3];
let arrS: string[] = ["1","2"]
若声明数组时未显式指定类型,TypeScript会将其视为 any 类型。在初始化阶段,系统会根据数组中第一个元素的类型来自动推断整个数组的类型。
访问数组

Array对象
除了直接初始化,我们还可以利用 Array 对象来创建数组实例。
Array 对象的构造函数主要接受以下两种参数形式:
- 一个表示数组预期大小的数值。
- 一组初始化的数组元素列表,各元素之间使用逗号进行分隔。
声明数组时指定数组大小
var arr:number[] = new Array(10);
for(var i = 0; i<arr.length; i++) {
arr[i] = i * 2
console.log(arr[i])
}

两种定义方式
let arr1:Array<number> = [1,2,3,4,5]
let arr2:number[] = new Array(1,2,3);
console.log("arr1===="+arr1);
console.log("arr2===="+arr2);

声明多维数组(含泛型)
这里引用一个较为清晰的示例:
定义一个多维数组:
var arr_name:datatype[][]=[ [val1,val2,val3],[v1,v2,v3] ]
普通版
var arr:number[][] = [[1,2,3],[4,5,6]]
console.log(arr[0][0])
console.log(arr[0][1])
console.log(arr[0][2])
console.log(arr[1][0])
console.log(arr[1][1])
console.log(arr[1][2])

泛型版
// 声明多维数组
let arr:number[][] = [[1,2,3], [4,5,6]];
// 泛型形式声明多维数组(联合类型)
let arr1:Array<Array<number | string>> = [[1,2,3,"123"],[4,5,6,"789"],[]];
console.log(arr)
console.log(arr1)

类数组
// 类数组
function Arr(... args:any):void{
console.log(arguments) //类数组,arguments是参数
let arr:IArguments = arguments //用IArguments去接收
}
Arr(1,2,3) //[Arguments] { '0': 1, '1': 2, '2': 3 }

数组解构
// 数组解构
var arr = [12, 13];
var x = arr[0], y = arr[1]; // 将数组的两个元素赋值给变量 x 和 y
console.log(x);
console.log(y);

通过接口描述数组
// 通过接口描述数组
interface NumberArray{
[index:number]:number; //只要索引的类型是数字,那么值的类型也必须是数字,换成string也是一样的
}
let arr:NumberArray = [1,2,3];
console.log(arr);

数组迭代
使用for…of来玩
// 数组迭代
var j:any;
var nums:number[] = [1,2,3,4]
for(j in nums) {
console.log(nums[j])
}

到此这篇关于TypeScript数组的定义与使用详解的文章就介绍到这了,更多相关TypeScript数组内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
作者最新文章
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18








