【阮一峰】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.数组
数组 简介 所有成员的类型必须相同,但是成员数量是不确定的。 由于成员数量可以动态变化,所以 TypeScript 不会对数组边界进行检查,越界访问数组并不会报错。 第一种写法: let arr: (number | string)[];第二种写法ÿ…...
DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方DeepSeek接入)
前言 在当今数字化时代,AI编程助手已成为提升开发效率的利器。DeepSeek作为一款强大的AI模型,凭借其出色的性能和开源免费的优势,成为许多开发者的首选。今天,就让我们一起探索如何将DeepSeek接入PyCharm,实现高效、智…...
【Java Card】Applet 使用Shareable进行数据分享以及部分问题处理
文章目录 前言一、定义接口二、server端实现三、client端实现四、遇到的问题 前言 在进行开发时,可能会将业务放到不同的applet中,这时常常会需要进行数据的分享。 比如在一个applet中存储了密钥,而在另一个业务applet中需要进行签名时&…...
国产FPGA开发板选择
FPGA开发板是学习和开发FPGA的重要工具,选择合适的开发板对学习效果和开发效率至关重要。随着国产FPGA的发展,淘宝上的许多FPGA开发板店铺也开始进行国产FPGA的设计和销售,本文将对国产FPGA和相关店铺做个简单梳理,帮助有需要使用…...
com.typesafe.config
com.typesafe.config 是 Typesafe Config 库的核心包,主要用于 统一、灵活地管理应用程序配置,支持从多种格式(如 HOCON、JSON、Java Properties)加载配置,并提供类型安全的访问接口。以下是其核心功能的详细解析&…...
Ubuntu学习备忘
1. 打开Terminal快捷键 ctrl alt t 2.Ubuntu22.04的root没有默认初始密码, 为root设置密码,下面链接的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? 用一行命令跨平台安装项目,在不同平台上运行项目。把项目打包分享运行应用。 1.2 Docker架构与容器化 准备机器,在机…...
【R语言】主成分分析与因子分析
一、主成分分析 主成分分析(Principal Component Analysis, PCA)是一种常用的无监督数据降维技术,广泛应用于统计学、数据科学和机器学习等领域。它通过正交化线性变换将(高维)原始数据投影到一个新的坐标系ÿ…...
ROS-相机话题-获取图像-颜色目标识别与定位-目标跟随-人脸检测
文章目录 相机话题获取图像颜色目标识别与定位目标跟随人脸检测 相机话题 启动仿真 roslaunch wpr_simulation wpb_stage_robocup.launch rostopic hz /kinect2/qhd/image_color_rect/camera/image_raw:原始的、未经处理的图像数据。 /camera/image_rectÿ…...
STM32 如何使用DMA和获取ADC
目录 背景 摇杆的原理 程序 端口配置 ADC 配置 DMA配置 背景 DMA是一种计算机技术,允许某些硬件子系统直接访问系统内存,而不需要中央处理器(CPU)的介入,从而减轻CPU的负担。我们可以通过DMA来从外设…...
【JAVA实战】JAVA实现Excel模板下载并填充模板下拉选项数据
背景 有这样一个场景:前端下载Excel模板,进行数据导入,这个下载模板过程需要经过后端接口去数据库查询数据进行某些列的下拉数据填充,下拉填充的数据过程中会出现错误String literals in formulas can’t be bigger than 255 cha…...
java面试笔记(一)
1. 一万个string类型的数据,设计一个算法如何按照String长度来排序 以使用 Arrays.sort() 方法,并结合一个自定义的比较器。以下是实现的示例代码: 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(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。pri…...
Qt5开发入门指南:从零开始掌握跨平台开发
目录 Qt框架概述 开发环境搭建 基础语法与核心机制 第一个Qt窗口程序 常见问题解答 一、Qt框架概述 1.1 什么是Qt? Qt是一个1995年由挪威Trolltech公司开发的跨平台C图形用户界面应用程序框架。最新Qt5版本主要包含: GUI模块:支持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是生物体内复杂功能网络的核心,例如酶与底物的结…...
网络安全学习架构 网络安全架构内容
网上买的《信息安全原理及应用》的书还没到,就找了一本《密码编码学与网络安全》的电子书,写的也不错,计划今天和明天把第一章绪论和第二章的数论给看完 1. 计算机网络安全概念 计算机安全的三个核心是:完整性(只要特…...
硕成C语言24
不管风吹浪打,胜似闲庭信步! 1.选择排序: 不管风吹浪打,胜似闲庭信步!1.选择排序: // 这个宏定义用于忽略 Visual Studio 中一些安全相关的警告,使得可以使用像 scanf 这样的函数而不产生警告…...
《Stable Diffusion绘画完全指南:从入门到精通的Prompt设计艺术》-配套代码示例
第一章:模型加载与基础生成 1.1 基础模型加载 from diffusers import StableDiffusionPipeline import torch# 加载SD 1.5基础模型(FP32精度) pipe StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",…...
3个维度解析:Farouk‘s Homepage如何重塑Obsidian知识管理范式
3个维度解析:Farouks Homepage如何重塑Obsidian知识管理范式 【免费下载链接】obsidian-homepage Obsidian homepage - Minimal and aesthetic template (with my unique features) 项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-homepage 知识工作…...
轻量级工作流引擎pacexy/flow:用代码解耦复杂业务逻辑
1. 项目概述:一个面向开发者的现代化工作流引擎最近在和一些做中后台应用、自动化工具的朋友交流时,大家普遍提到一个痛点:随着业务逻辑越来越复杂,代码里到处是if-else和状态判断,一个核心流程动辄几百行,…...
QT文件对话框QFileDialog的5个高级用法:从多选文件到自定义过滤器
QT文件对话框QFileDialog的5个高级用法:从多选文件到自定义过滤器 在桌面应用开发中,文件选择对话框是最基础也最频繁使用的组件之一。QT框架提供的QFileDialog类看似简单,实则隐藏着许多能显著提升用户体验的高级功能。本文将深入探讨五个常…...
终极Windows安卓应用安装方案:告别臃肿模拟器,体验轻量级跨平台
终极Windows安卓应用安装方案:告别臃肿模拟器,体验轻量级跨平台 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否厌倦了在Windows上运行安…...
别再乱用try-catch-finally了!Spring Boot项目里这样处理异常才优雅
Spring Boot异常处理的艺术:告别try-catch-finally的野蛮时代 在微服务架构盛行的今天,一个优雅的异常处理机制已经成为区分专业开发与业余编码的关键标志。想象这样的场景:当你的API被疯狂调用时,某个服务突然抛出异常ÿ…...
为什么92%的RTOS Bug无法在仿真器中复现?揭秘真实硬件时序扰动下的C语言竞态条件捕获术(含CMSIS-RTOS v2.1.3实测数据)
更多请点击: https://intelliparadigm.com 第一章:RTOS Bug仿真失效率的底层归因分析 RTOS(实时操作系统)在嵌入式仿真环境中表现出的Bug复现失效率,常被误判为随机性问题,实则根植于调度语义、时序建模精…...
别再死磕公式了!用STM32 HAL库+电机驱动板,手把手带你跑通FOC电机控制(附完整代码)
从零搭建FOC电机控制:STM32 HAL库实战指南 1. 硬件准备与开发环境搭建 工欲善其事,必先利其器。在开始FOC电机控制项目前,我们需要准备一套完整的硬件开发环境和软件工具链。不同于传统理论推导,这里我们直接从实际工程角度出发&a…...
构建一个基于 TD3 (Twin Delayed DDPG) 算法的永磁同步电机(PMSM)电流环控制系统
目录 🎯 一、 核心目标与系统架构 系统整体架构图 🛠️ 二、 手把手建模步骤 第一步:搭建被控对象 (The Plant) 第二步:定义强化学习环境 (Define Environment) 第三步:选择并配置智能体 (Select Agent) 第四步:训练智能体 (Training) 第五步:部署与验证 (Dep…...
React AI Hooks集成:声明式AI交互与工程实践指南
1. 项目概述:当AI能力成为React应用的基础设施最近在重构一个前端项目,发现团队里不同成员写的组件,都在重复实现一些类似的功能:智能表单验证、基于上下文的自动补全、用户行为的预测性交互。这些功能背后,其实都指向…...
3个隐藏频道管理难题,这款Discord插件如何帮你轻松解决?
3个隐藏频道管理难题,这款Discord插件如何帮你轻松解决? 【免费下载链接】return-ShowHiddenChannels A BetterDiscord plugin which displays all hidden channels and allows users to view information about them. 项目地址: https://gitcode.com/…...
