当前位置: 首页 > news >正文

【阮一峰】2.数组

数组

简介

所有成员的类型必须相同,但是成员数量是不确定的。

由于成员数量可以动态变化,所以 TypeScript 不会对数组边界进行检查,越界访问数组并不会报错。

第一种写法:

let arr: (number | string)[];

第二种写法:

let arr: Array<number | string>;

TypeScript 允许使用方括号读取数组成员的类型。

type Names = string[];
type Name = Names[0]; // string

type Names = string[];
type Name = Names[number]; // string

数组类型推断

如果变量的初始值为空数组,随着元素的加入,Typescript 会自动修改推断的数组类型。

只读数组

TypeScript 允许声明只读数组,方法是在数组类型前面加上 readonly 关键字。

const arr: readonly number[] = [0, 1];

TypeScript 将 readonly number[]number[]视为两种不一样的类型,数组是只读数组的子类型。

readonly 关键字不能与数组的泛型写法一起使用。

TypeScript 提供了两个专门的泛型,用来生成只读数组的类型。

const a1: ReadonlyArray<number> = [0, 1];
const a2: Readonly<number[]> = [0, 1];

只读数组还有一种声明方法,就是使用“const 断言”。

const arr = [0, 1] as const;

多维数组

TypeScript 使用 T[][]的形式,表示二维数组,T 是最底层数组成员的类型。

var multi: number[][] = [
  [1, 2, 3],
  [23, 24, 25],
];

相关文章:

  • vue3 input type=“file” 修改样式
  • 深入理解Zookeeper:分布式系统的协调者
  • 三、Three.js模型对象、材质
  • 网络运维学习笔记 012网工初级(HCIA-Datacom与CCNA-EI)某机构新增:GRE隧道与EBGP实施
  • 16Linux运维网络基础(02网络层次结构)
  • spring注解开发(纯注解开发模式)(2)
  • MobaXterm通过ssh远程连接Ubuntu的方法
  • 【重磅发布】OmniParser V2-开启GUI自动化新时代
  • 【Python爬虫(26)】Python爬虫进阶:数据清洗与预处理的魔法秘籍
  • LeetCode 热题 100_搜索插入位置(63_35_简单_C++)(二分查找)(”>>“ 与 “/” 对比)
  • 3、Kubernetes 集群部署 Prometheus 和 Grafana
  • Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
  • 有向图的强连通分量: Kosaraju算法和Tarjan算法详解
  • Flink CDC详解
  • 【Python】迭代器与生成器详解,附代码(可迭代对象、定义、实现方式、区别、使用场景)
  • 深入理解 SQL 注入漏洞及解决方案
  • 56. 合并区间 (LeetCode 热题 100)
  • 十大排序算法
  • Java-11
  • Enterprise Architect 16 下载、安装与无限30天操作
  • seo怎么优化一个网站/长春seo排名扣费
  • 企业网站建设规划书/现在比较好的营销平台
  • 高端企业网站建设制作/拼多多关键词优化步骤
  • 旅游网站建设的摘要/2024年疫情还会封控吗
  • 如何虚拟一个公司网站/适合口碑营销的产品
  • 做动态图网站/网络推广公司简介模板