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

Typescript的数组类型

文章目录

    • 数组类型定义
        • 简单数组类型表示法
        • 泛型数组类型表示法
    • 只读数组

在Typescript中,数组的数据类型为数组类型。

数组类型定义

数组类型的定义有两种方式:简单数组类型表示法、泛型数组类型表示法

简单数组类型表示法

使用数组字面量的语法,在数组元素类型后面添加中括号’[]'来定义数组类型。
语法:arrElement[]
arrElement表示是数组元素的类型,中括号表示数组类型,比如:

const arr:number[] = [2,3,4,5,7]

这段代码表示数组所有元素都为number类型。如果数组元素的是复合类型【数组元素可以为多种数据类型】,那么在数组元素类型上使用分组运算符。比如:

const  arr:(string | number) = [1,2,'43','54']

泛型数组类型表示法

泛型数组类型,就是使用泛型来表示数组类型,语法:Array<Element>,比如:

const data:Array<number> = [1,2,3,5];

数组元素类型为复合类型:

const data:Array<string | number> = [1,2,4,'54','65'];

如果数组元素类型比较简单,则使用简单数组类型表示法;如果是复杂类型,比如对象类型或者联合类型,则选择使用泛型数组类型表示法。

只读数组

只读数组的定义方法:

  1. 使用ReadonlyArray内置类型
  2. 使用readonly修饰符
  3. 使用Readonly工具类型

注意: readonly修饰符不允许与泛型数组类型表示法一起使用

另外允许将常规数组类型赋值给只读数组类型,比如:

01 const a: number[] = [0];
02 const ra: readonly number[] = [0];
03 
04 const x: readonly number[] = a;  // 正确
05 
06 const y: number[] = ra;          // 编译错误

相关文章:

  • 【分治法】第k个数(快速选择算法,结合快速排序)
  • 西瓜书研读——第四章 决策树:ID3、C4.2、CSRT算法
  • aistudio 常规赛:钢铁缺陷检测挑战赛 经验总结,轻松复现map 47排名再度提升
  • 学习小发现-04-如何从字符串中提取数字并转换为整型输出、如何在%d输入内容中判断整型并只读取数字以整型输出、scanf的各种用法
  • Python中的闭包
  • Java知识【继承中的成员访问特点】
  • <Linux进程控制(2)>——《Linux》
  • 嵌入式软件编程模式
  • VL8 使用generate_for语句简化代码
  • 从零开始搭建uni-app框架的小程序开发环境
  • 【web】TCP/UDP协议详解(字节二面:TCP三次握手、四次挥手)
  • C++打怪升级(二)- 引用详解
  • MongoDB的日志目录被删除了,导致无法启动:(code=exited, status=1/FAILURE)
  • 数据我爬定了,限流也挡不住,我说的
  • 可持久化线段树
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • css布局,左右固定中间自适应实现
  • Facebook AccountKit 接入的坑点
  • Javascript 原型链
  • Javascript设计模式学习之Observer(观察者)模式
  • JS数组方法汇总
  • mysql外键的使用
  • mysql中InnoDB引擎中页的概念
  • NSTimer学习笔记
  • 彻底搞懂浏览器Event-loop
  • 欢迎参加第二届中国游戏开发者大会
  • 精彩代码 vue.js
  • 区块链技术特点之去中心化特性
  • 如何学习JavaEE,项目又该如何做?
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 微信小程序开发问题汇总
  • 我是如何设计 Upload 上传组件的
  • 移动端解决方案学习记录
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 阿里云API、SDK和CLI应用实践方案
  • ​比特币大跌的 2 个原因
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (3)(3.5) 遥测无线电区域条例
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (k8s中)docker netty OOM问题记录
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (学习日记)2024.01.09
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • . NET自动找可写目录
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .Net - 类的介绍
  • .Net FrameWork总结
  • .NET 的程序集加载上下文
  • .NET 药厂业务系统 CPU爆高分析
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @RequestMapping处理请求异常