当前位置: 首页 > 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],
];

相关文章:

【阮一峰】2.数组

数组 简介 所有成员的类型必须相同&#xff0c;但是成员数量是不确定的。 由于成员数量可以动态变化&#xff0c;所以 TypeScript 不会对数组边界进行检查&#xff0c;越界访问数组并不会报错。 第一种写法&#xff1a; let arr: (number | string)[];第二种写法&#xff…...

DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方DeepSeek接入)

前言 在当今数字化时代&#xff0c;AI编程助手已成为提升开发效率的利器。DeepSeek作为一款强大的AI模型&#xff0c;凭借其出色的性能和开源免费的优势&#xff0c;成为许多开发者的首选。今天&#xff0c;就让我们一起探索如何将DeepSeek接入PyCharm&#xff0c;实现高效、智…...

【Java Card】Applet 使用Shareable进行数据分享以及部分问题处理

文章目录 前言一、定义接口二、server端实现三、client端实现四、遇到的问题 前言 在进行开发时&#xff0c;可能会将业务放到不同的applet中&#xff0c;这时常常会需要进行数据的分享。 比如在一个applet中存储了密钥&#xff0c;而在另一个业务applet中需要进行签名时&…...

国产FPGA开发板选择

FPGA开发板是学习和开发FPGA的重要工具&#xff0c;选择合适的开发板对学习效果和开发效率至关重要。随着国产FPGA的发展&#xff0c;淘宝上的许多FPGA开发板店铺也开始进行国产FPGA的设计和销售&#xff0c;本文将对国产FPGA和相关店铺做个简单梳理&#xff0c;帮助有需要使用…...

com.typesafe.config

com.typesafe.config 是 Typesafe Config 库的核心包&#xff0c;主要用于 统一、灵活地管理应用程序配置&#xff0c;支持从多种格式&#xff08;如 HOCON、JSON、Java Properties&#xff09;加载配置&#xff0c;并提供类型安全的访问接口。以下是其核心功能的详细解析&…...

Ubuntu学习备忘

1. 打开Terminal快捷键 ctrl alt t 2.Ubuntu22.04的root没有默认初始密码&#xff0c; 为root设置密码&#xff0c;下面链接的step1, How to allow GUI root login on Ubuntu 22.04 Jammy Jellyfish Linux - LinuxConfig...

【C++】— 掌握STL vector 类:“Vector简介:动态数组的高效应用”

文章目录 1.vector的介绍和使用1.1vector的介绍1.2 vector的特点1.3vector的使用1.3.1vector的定义1.3.2vector iterator的使用1.3.3vector 的空间增长问题1.3.4 vector 的增删查改1.3.5vector 迭代器失效问题 1.vector的介绍和使用 1.1vector的介绍 vector是一个顺序容器&am…...

Docker__持续更新......

Docker 1. 基本知识1.1 为什么有Docker?1.2 Docker架构与容器化 画图解释 画图解释2. 项目实战 1. 基本知识 1.1 为什么有Docker? 用一行命令跨平台安装项目&#xff0c;在不同平台上运行项目。把项目打包分享运行应用。 1.2 Docker架构与容器化 准备机器&#xff0c;在机…...

【R语言】主成分分析与因子分析

一、主成分分析 主成分分析&#xff08;Principal Component Analysis, PCA&#xff09;是一种常用的无监督数据降维技术&#xff0c;广泛应用于统计学、数据科学和机器学习等领域。它通过正交化线性变换将&#xff08;高维&#xff09;原始数据投影到一个新的坐标系&#xff…...

ROS-相机话题-获取图像-颜色目标识别与定位-目标跟随-人脸检测

文章目录 相机话题获取图像颜色目标识别与定位目标跟随人脸检测 相机话题 启动仿真 roslaunch wpr_simulation wpb_stage_robocup.launch rostopic hz /kinect2/qhd/image_color_rect/camera/image_raw&#xff1a;原始的、未经处理的图像数据。 /camera/image_rect&#xff…...

STM32 如何使用DMA和获取ADC

目录 背景 ‌摇杆的原理 程序 端口配置 ADC 配置 DMA配置 背景 DMA是一种计算机技术&#xff0c;允许某些硬件子系统直接访问系统内存&#xff0c;而不需要中央处理器&#xff08;CPU&#xff09;的介入&#xff0c;从而减轻CPU的负担。我们可以通过DMA来从外设&#xf…...

【JAVA实战】JAVA实现Excel模板下载并填充模板下拉选项数据

背景 有这样一个场景&#xff1a;前端下载Excel模板&#xff0c;进行数据导入&#xff0c;这个下载模板过程需要经过后端接口去数据库查询数据进行某些列的下拉数据填充&#xff0c;下拉填充的数据过程中会出现错误String literals in formulas can’t be bigger than 255 cha…...

java面试笔记(一)

1. 一万个string类型的数据&#xff0c;设计一个算法如何按照String长度来排序 以使用 Arrays.sort() 方法&#xff0c;并结合一个自定义的比较器。以下是实现的示例代码: public class StringLengthSort {public static void main(String[] args) {// 定义一万个字符串的示例…...

【C++】36.C++IO流

文章目录 1. C语言的输入与输出2. 流是什么3. CIO流3.1 C标准IO流3.2 C文件IO流 4. stringstream的简单介绍 1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。pri…...

Qt5开发入门指南:从零开始掌握跨平台开发

目录 Qt框架概述 开发环境搭建 基础语法与核心机制 第一个Qt窗口程序 常见问题解答 一、Qt框架概述 1.1 什么是Qt&#xff1f; Qt是一个1995年由挪威Trolltech公司开发的跨平台C图形用户界面应用程序框架。最新Qt5版本主要包含&#xff1a; GUI模块&#xff1a;支持Wind…...

Rook-ceph(1.92最新版)

安装前准备 #确认安装lvm2 yum install lvm2 -y #启用rbd模块 modprobe rbd cat > /etc/rc.sysinit << EOF #!/bin/bash for file in /etc/sysconfig/modules/*.modules do[ -x \$file ] && \$file done EOF cat > /etc/sysconfig/modules/rbd.modules &l…...

深度学习在蛋白质-蛋白质相互作用(PPI)领域的研究进展(2022-2025)

一、蛋白质-蛋白质相互作用(PPI)的定义与生物学意义 蛋白质-蛋白质相互作用(Protein-Protein Interaction, PPI)是指两个或多个蛋白质通过物理结合形成复合物,进而调控细胞信号传导、代谢、免疫应答等生命活动的过程。PPI是生物体内复杂功能网络的核心,例如酶与底物的结…...

网络安全学习架构 网络安全架构内容

网上买的《信息安全原理及应用》的书还没到&#xff0c;就找了一本《密码编码学与网络安全》的电子书&#xff0c;写的也不错&#xff0c;计划今天和明天把第一章绪论和第二章的数论给看完 1. 计算机网络安全概念 计算机安全的三个核心是&#xff1a;完整性&#xff08;只要特…...

硕成C语言24

不管风吹浪打&#xff0c;胜似闲庭信步&#xff01; 1.选择排序&#xff1a; 不管风吹浪打&#xff0c;胜似闲庭信步&#xff01;1.选择排序&#xff1a; // 这个宏定义用于忽略 Visual Studio 中一些安全相关的警告&#xff0c;使得可以使用像 scanf 这样的函数而不产生警告…...

《Stable Diffusion绘画完全指南:从入门到精通的Prompt设计艺术》-配套代码示例

第一章&#xff1a;模型加载与基础生成 1.1 基础模型加载 from diffusers import StableDiffusionPipeline import torch# 加载SD 1.5基础模型&#xff08;FP32精度&#xff09; pipe StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...