news 2026/6/10 16:29:22

TypeScript开发基础(3)——复合数据类型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TypeScript开发基础(3)——复合数据类型

数组、元组、枚举、对象、接口等具有引用和复合特征,属于复合数据类型。

1. 数组类型

数组有一个根本特征:所有成员的类型必须相同,但是成员数量是不确定的,可以是无限数量的成员,也可以是零成员。

(1)数组的定义

let numarr:number[] = [1,2,3];//定义数值型数组 let names:string[] = ["apple","banana","cherry"];//定义字符串数组

(2)数组的常见操作方法

  • concat()‌:连接一个或多个数组,并返回新数组。例如,[1, 2].concat([3, 4])结果为[1, 2, 3, 4]。 ‌
  • push()‌:向数组末尾添加一个或多个元素,并返回新长度。例如,[1, 2].push(3)后数组变为[1, 2, 3]。 ‌
  • pop()‌:删除数组最后一个元素,并返回该元素。例如,[1, 2, 3].pop()返回3,数组变为[1, 2]。 ‌
  • slice(start, end)‌:提取数组的一部分,返回新数组。支持负索引,例如slice(-2)表示从末尾开始提取。 ‌
  • map()‌:通过函数处理每个元素,并返回新数组。例如,[1, 2, 3].map(x => x * 2)结果为[2, 4, 6]。 ‌
  • filter()‌:返回符合指定条件的元素组成的新数组。例如,[1, 2, 3, 4].filter(x => x > 2)结果为[3, 4]。 ‌
  • forEach()‌:遍历数组每个元素并执行回调函数,但不返回新数组。 ‌
  • reduce()‌:将数组元素计算为一个值(从左到右)。例如,[1, 2, 3].reduce((a, b) => a + b)结果为6。 ‌
  • sort()‌:对数组元素进行排序,可自定义比较函数。例如,按数值大小排序:[3, 1, 2].sort((a, b) => a - b)。 ‌
  • reverse()‌:反转数组中元素的顺序。例如,[1, 2, 3].reverse()结果为[3, 2, 1]
    let numarr:number[] = [1,2,3]; let names:string[] = ["apple","banana","cherry"]; numarr.push(4); numarr.unshift(0); names.push("orange"); names.unshift("grape"); console.log(numarr); console.log(numarr.concat([5,6])); console.log(numarr.slice(1,3)); console.log(numarr.reduce((a,b)=>a+b)); console.log(names); names.reverse(); console.log(names);

2. 元组类型

元组是一种特殊类型的数组,允许在固定长度的集合中存储不同类型的元素,每个位置都有明确的类型和顺序。‌ 与普通数组(元素类型相同且长度可变)不同,元组适用于表示结构化数据,如函数返回多个值或坐标点。‌

let myTup: [string, number] = ["tom", 18]; type Point = [number, number?, number?]; console.log(myTup); console.log(myTup[0]); let x: Point = [10]; // 一维坐标点 let xy: Point = [10, 20]; // 二维坐标点 let xyz: Point = [10, 20, 10]; // 三维坐标点 console.log(x); console.log(xy); console.log(xyz);

3. 枚举类型

枚举(Enum)是一种强大的特性,它允许你为数值集合中的成员提供一个友好的名字。枚举可以是有数字或字符串的成员,这使得代码更易于理解和维护。

(1)数字枚举

enum Direction { Up, Down, Left, Right } console.log(Direction.Up); // 输出: 0 console.log(Direction.Down); // 输出: 1 console.log(Direction[0]); // 输出: "Up"

(2)字符串枚举

enum Direction { Up = "UP", Down = "DOWN", Left = "LEFT", Right = "RIGHT" } console.log(Direction.Up); // 输出: "UP" console.log(Direction["UP"]); // 输出: 0

4. 对象类型

在TypeScript中,可以使用对象字面量语法创建一个对象。该语法是用一对花括号{}将属性和函数包裹起来,而属性和函数则以键—值对的形式进行组织,这种间接形式常用于创建对象。

let user={ id: 1001, name: "张三", password: "123456" }

5. 接口类型

TypeScript 中的接口(Interface)是一种用于定义对象结构的契约,它描述了对象应该包含的属性和方法,确保类型安全。接口是面向对象编程中的重要概念,常用于约束类、函数或对象的形状。‌

interface User { id: number; name: string; password: string; email: string; department: string; role: string; isActive: boolean; joinDate: string; } let user: User = { id: 1, name: "张三", password: "123456", email: "zhangsan@example.com", department: "软件开发部", role: "管理员", isActive: true, joinDate: "2022-01-15", };

对象与接口是面向对象编程的重要概念,在后面面向对象编程中还会详细讲解。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:04:27

运维转行网络安全,零基础入门到精通,看这一篇就够了!

运维怎么转行网络安全?零基础入门到精通,收藏这篇就够了 经常有人问我:干网工、干运维多年遇瓶颈,想学点新技术给自己涨涨“身价”,应该怎么选择? 聪明人早已经用脚投票:近年来,越…

作者头像 李华
网站建设 2026/6/10 0:44:28

13、JSTL 响应重定向与配置设置详解

JSTL 响应重定向与配置设置详解 1. JSTL 响应重定向 在基于 Java 的 Web 应用中,在 JSTL 出现之前,重定向 HTTP 响应的唯一方法是使用 HttpServletResponse.sendRedirect 方法。而 JSTL 通过 <c:redirect> 动作让重定向 HTTP 响应变得更加容易。 有一个应用示例…

作者头像 李华
网站建设 2026/6/10 11:08:23

2025项目管理软件怎么选?十大热门工具深度评测,避坑指南来了

无论是中小型团队的轻量协作&#xff0c;还是大型企业的复杂项目管控&#xff0c;选择合适的工具能让管理效率翻倍。精选10款好用的项目管理软件&#xff0c;从核心功能、适用场景到优劣势进行深度解析&#xff1a;进度猫 核心定位&#xff1a;国内领先的轻量级可视化项目管理工…

作者头像 李华
网站建设 2026/6/10 11:05:30

SpringBoot4.0合 Scala/Java 混编?我踩过的坑,请你绕行

SpringBoot4.0合 Scala/Java 混编&#xff1f;我踩过的坑&#xff0c;请你绕行 本节说明一下Scala和Java混合开发时&#xff0c;本地运行没问题&#xff0c;只要上线部署打成Jar包就会找不到启动类&#xff0c;启动时就会报错 1. 需要配置两个东西 1. Scala的依赖2. Scala的打…

作者头像 李华
网站建设 2026/6/10 13:06:29

WebUploader支持国密加密的大文件分块上传方案?

前端老哥的外包求生记&#xff1a;20G大文件上传系统&#xff08;Vue3原生JS&#xff09; 兄弟们&#xff01;我是福建一名“头发渐少但代码不秃”的前端程序员&#xff0c;最近接了个外包活——给客户做文件管理系统&#xff0c;核心需求就一个&#xff1a;“20G大文件文件夹…

作者头像 李华
网站建设 2026/6/10 12:22:44

提高表达能力必看的七本演讲与口才类书籍推荐

古语有云&#xff1a;「三寸之舌&#xff0c;强于百万之师」&#xff0c;足见口才的力量。TED掌门人克里斯也曾说&#xff1a;无论今天公众演讲有多重要&#xff0c;未来只会更重要&#xff01;为了帮助大家提升演讲与口才能力&#xff0c;特此推荐七本演讲方面的经典书籍&…

作者头像 李华