当前位置: 首页 > 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],
];
http://www.dtcms.com/a/29482.html

相关文章:

  • 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天操作
  • Piantor Keyboard:开源机械键盘项目介绍
  • 通用参考模型
  • < OS 有关 > Ubuntu 24 SSH 服务器更换端口 in jp/us VPSs
  • Linux中使用Docker安装DIFY搭建本地支持库和Agent
  • 如何在Ubuntu服务器上快速安装GNOME桌面环境
  • Python 库自制 Cross-correlation 算法(当采样点需要进行位移进行匹配)
  • Three.js 快速入门教程【四】三维坐标系
  • JWT认证机制
  • golang时间相关函数总结
  • 国产芯片汽车气压表pcba方案