首页 > 其他分享 >来学习typescript 吧! --4 数组类型

来学习typescript 吧! --4 数组类型

时间:2024-12-05 10:59:59浏览次数:5  
标签:typescript string -- number let arguments 数组 any

1.类型[]

let arr1: number[] = [1, 2, 3]
let arr2: string[] = ['a', 'b', 'c']
let arr3: (number | string)[] = [1, 'a', 2, 'b']

 

2.Array<类型> 数组泛型
let arr4: Array<number> = [1, 2, 3]
let arr5: Array<string> = ['a', 'b', 'c']
let arr6: Array<number | string> = [1, 'a', 2, 'b']

 

3、用接口表示数组
interface NumberArray {
  [index: number]: number
}
let arr7: NumberArray = [1, 2, 3]

 

4、arguments类数组

错误定义

function Arr(...args:any): void {
  console.log(arguments)
  //错误的arguments 是类数组不能这样定义
  let arr:number[] = arguments
}

正确定义

function Arr(...args: any): void {
  console.log(arguments)
  // ts内置对象IArguments 定义
  let arr: IArguments = arguments
}

其中 IArguments 是 TypeScript 中定义好了的类型

function sum() {
  let args: IArguments = arguments
}
// 它实际上就是:
function sum() {
  let args: {
      [index: number]: any;
      length: number;
      callee: Function;
  } = arguments
}

 

5、元组 Tuple
let tom: [string, number] = ['Tom', 25]
// tom[0] = 100 //错误
tom[1] = 100 //正确
// tom[2] = 'male' //错误
// tom[3] = true //错误

// 当添加越界的元素时,它的类型会被限制为元组中每个类型的联合类型:
let tom1: [string, number] = ['Tom', 25]
tom1.push('male')
tom1.push(true) //越界元素只能是string或number类型

 

6、多维数组
let arr8: number[][] = [[1, 2], [3, 4]]
let arr9: (number | string)[][] = [[1, 'a'], [2, 'b']]
let arr10: (number | string)[][][] = [[[1, 'a'], [2, 'b']], [[3, 'c'], [4, 'd']]]

 

7、any 在数组中的应用
let list: any[] = ['xcatliu', 25, { website: 'http://xcatliu.com' }]
list[1] = 'string'
list.push(100)
list.push({ name: 'Tom' })
list.push([1, 2, 3])
 

标签:typescript,string,--,number,let,arguments,数组,any
From: https://www.cnblogs.com/zhuangdd/p/18588090

相关文章

  • C语言项目实现--数字游戏
    数字游戏根据用户选择,完成以下功能解一元二次方程;判断指定年份是否是闰年;判断某一数字是否是水仙花数简单了解:一元二次方程:仅注意观察▲即可闰年:普通润年:能被4整除但不能被100整除的年份世纪润年:能被400整除的世纪年(即以00结尾的年份)eg.1900可以被4整除(475),但不......
  • Qt - Json数据解析
     json数据格式:{"name":"Alice","age":30,"isStudent":false,"courses":[{"courseName":"Mathematics","credits":3,"ins......
  • 01-什么是C语言
    一、什么是C语言C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。1、语言人和人交流的语言:汉语、英语、日语、等等。人和计算机交流语言(计......
  • python带翻页blbl视频爬虫程序代码QZQ
    importsubprocessdefdownload_bilibili_video(video_url):try:#使用you-get下载视频,-o指定输出目录(这里是当前目录)subprocess.run([‘you-get’,‘-o’,‘.’,video_url],check=True)print(“视频下载成功!”)exceptsubprocess.CalledProcessErrorase:print......
  • C语言笔记--文件操作
    为什么使用文件使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),......
  • jQuery简单带记事功能的日历插件
    e-calendar是一款jquery简单带记事功能的日历插件。通过该jQuery日历插件你可以记录或设置某天某个时刻发生的事情,具有工作备忘录的功能。通过简单的参数设置你就可以定制该日历插件的外观。 在线演示 下载  使用方法要使用该jQuery日历插件首先引入jQuery和jquery.e-......
  • 医院综合后勤部门系统运维数智化的探索之路
    一、引言医院后勤运维管控智能化是当前医疗行业发展的重要趋势。随着科技的不断进步,医院的信息化建设也在日益深入。医院综合后勤部门作为医院信息化建设的关键力量,在后勤运维管控中发挥着越来越重要的作用。在当今时代,医院的规模不断扩大,医疗水平和服务质量持续提升,这也......
  • centos7 python3.9.10 报错 No module named _ssl
    配置openssltar-zxvfopenssl-1.1.1w.tar.gzcdopenssl-1.1.1w/./config--prefix=/usr/local/openssl--openssldir=/usr/local/opensslmakemakeinstallmv/usr/bin/openssl/usr/bin/openssl_backupln-s/usr/local/openssl/bin/openssl/usr/bin/opensslln-s/......
  • 大模型微调知识全景
    大模型微调知识全景文章目录大模型微调知识全景一、大模型开发全流程二、什么是大模型微调三、为什么需要大模型微调四、大模型微调的方法有哪些4.1FFT的缺点4.2PEFT的优点4.3PEFT的分类五、各类微调方法的原理是什么5.1In-ContextLearning5.2SoftPromptTun......
  • Python 编程入门教程
    Python是一种广泛使用的高级编程语言,以其代码的可读性、简洁性和强大的库支持而闻名。Python的设计哲学强调代码的可读性和简单性,这使得它成为初学者和专业人士学习编程的理想选择。Python应用广泛,从网站开发到数据科学、人工智能、自动化脚本等,几乎涵盖了所有编程领域。Py......