TypeScript的数组类型
TypeScript 中如何声明特定类型的数组?
在 TypeScript 中,数组是有序的数据集合,可以使用 let arrayName: type[];
的语法声明一个特定类型的数组:
let skills: string[] = [];
// 可以往数组里添加多个元素
skills[0] = "Vibe Coding";
skills[1] = "Programming";
// 同样也可以使用 push 方法添加元素
skills.push("Software Design");
TypeScript 如何推断数组的类型?
如果直接赋值一个数组字面量,TypeScript 会自动推断数组元素的类型,如下变量 skills 只能存储字符串类型的元素:
let skills = ['Vibe Coding', 'Software Design', 'Programming'];
这时,TypeScript 会推断 skills
为 string[]
类型,等同于
let skills: string[] = ['Vibe Coding', 'Software Design', 'Programming'];
并且TypeScript 编译器会阻止添加不同于 string
的其他类型的值,以保证类型安全:
// 此时编译器会报错 Argument of type 'number' is not assignable to parameter of type 'string'.ts(2345)
skills.push(100);
当从数组中取出一个元素时,TypeScript 会自动推断该元素的类型:
let skill = skills[0];
// 控制台会输出 "string",即skill 的类型会被推断为 string
console.log(typeof(skill));
TypeScript 数组有哪些常用属性和方法?
TypeScript 数组拥有与 JavaScript 数组相同的属性和方法:
- length 属性获取数组长度let series = [1, 2, 3];
let series = [1, 2, 3];
// 输出 3
console.log(series.length);
- 常用方法如
forEach()
、map()
、reduce()
、filter()
等:
let series = [1, 2, 3];
let doubleIt = series.map(e => e * 2);
// 输出 [2, 4, 6]
console.log(doubleIt);
如何声明可以存储多种类型的数组?
可以使用联合类型(后续会介绍)来声明数组元素可以是多种类型:
let scores: (string | number)[] = ['Programming', 5, 'Vibe Coding', 6];
这样,scores
数组既可以存储字符串,也可以存储数字。
-
如果你觉得我的工作对你有帮助,可以通过分享这篇文字或者关注同名公众号来支持我,你的支持是我持续创作的最大动力:
-
转载以及引用请注明原文链接。
-
本博客所有文章除特别声明外,均采用CC 署名-非商业使用-相同方式共享 许可协议。