【02】基础知识:typescript数据类型

1、布尔类型 boolean

let flag: boolean = false

2、数字类型 number

let num: number = 6 //十进制
let num2: number = 0xf00d //十六进制
let num3: number = 0b1010 //二进制
let num4: number = 0o744 //八进制

3、字符串类型 string

用双引号(“)或单引号(‘)来表示字符串类型。

模版字符串:可以定义多行文本和内嵌表达式,使用反引号(`)包围,并且以${ expr }这种形式嵌入表达式。

let name: string = 'Tom'
let years: number = 5
let str: string = `Hello, my name is ${name}, I'm ${years + 1} years old.`

4、数组类型 array

ts定义数组分为两种方式,一种是在元素类型后面接 [],表示由此类型元素组成的数组;

另一种是使用数组泛型,Array<元素类型>。

let arr: number[] = [1, 2, 3] // 在元素类型后面加上[]
let arr2: Array<string> = ['1', '2'] //使用数组泛型
let arr3: any[] = [1, "Tom"]

5、元组类型 tuple

元组属于数组的一种,元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。

let x: [string, number]
x = ['hello', 6] //运行正常
x = [6, 'hello'] //报错
console.log(x[0]) //输出hello

6、枚举类型 enum

枚举类型用于定义数值集合。(定义更多的其他非数值类型的数据)

定义:
enum 枚举名称 {
 标识符[=整型常数],
 …
}

enum Color { Red, Green, Blue }
let c: Color = Color.Red
console.log(c)  // 输出 0,如果枚举类型没有赋值,那么输出的就是下标enum Color { Red = 1, Green, Blue }
let colorName: string = Color[2] 
// 如果前一个赋值,后面没有赋值,那么后面会根据前面赋值,往后+1
console.log(colorName)  // 显示'Green'因为上面代码里它的值是2

7、任意类型 any

let num:any = 1
num = false // 修改值类型,不会报错let box = document.getElementById('box')  // 可以运行代码,但是会报错
let box: any = document.getElementById('box')  // 可以运行代码,也不会报错
box.style.color = 'red'

8、void 类型

void 类型表示没有任何类型。一般用户定义方法时方法没有返回值。

function run(): void {console.log('方法没有返回任何类型')
}function run(): number {return 1 // 方法返回类型为 number
}

9、null 和 undefined

null 和 undefined 两者各自有自己的类型分别叫做 null 和 undefined。

let u: undefined = undefined
let n: null = null

默认情况下 null 和 undefined 是所有类型的子类型。 就是说你可以把 null 和 undefined 赋值给 number 类型的变量。

然而,当你指定了 --strictNullChecks 标记,null 和 undefined 只能赋值给 void 和它们各自。 这能避免很多常见的问题。 也许在某处你想传入一个 string 或 null 或 undefined,你可以使用联合类型 string | null | undefined。

let num: number // 输出 undefined,会报错
let num: undefined // 输出 undefined,不会报错// 一个变量可能是 number类型,可能是 undefined 类型
let num: number | undefined // 定义未赋值,输出 undefined,不会报错
num = 3 // 输出3,不会报错console.log(num) 

10、never类型

never 类型表示从不会出现的值, never 类型是任何类型的子类型。

声明为 never 的变量只能被 never 类型所赋值。

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {throw new Error(message)
}// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {while (true) {}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/37768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB 简介

什么是MongoDB ? MongoDB 是由C语言编写的&#xff0c;是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下&#xff0c;添加更多的节点&#xff0c;可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个…

mqttfx连上OneNET生成token时的一大坑,报用户名或密码错误

整个流程如下连接&#xff1a; MQTT.fx和MQTTX 链接ONENET物联网开发平台避坑细节干货。 其中在生成token时&#xff0c;搞了半天在连接后都会报用户名密码错误 最后发现是格式问题&#xff0c;输入所有字符后一定要双击看是否可以全选中&#xff0c;可以全选中说明字符的格式…

java spring cloud 企业工程管理系统源码+二次开发+定制化服务 em

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显…

springBoot中service层查询使用多线程CompletableFuture(有返回值)

重点&#xff1a; 1. 创建线程池 Executor executor Executors.newCachedThreadPool();//保存线程List<CompletableFuture<Void>> futures new ArrayList<>();2.使用 //这里可以是多个看下面代码是在for中使用的 CompletableFuture<Void> future …

深入解析路由与网络:网络的脉络

目录 路由 广域网 公网 外网 局域网 内网 以太网 Wi-Fi CDN IPv4和IPv6 IP地址分类 无类别域间路由&#xff08;CIDR&#xff09; 路由 路由是指在计算机网络中&#xff0c;将数据包从源地址传递到目标地址的过程。在一个复杂的网络中&#xff0c;数据包需要经过多…

冶金作业VR虚拟仿真厂家

对于高风险行业来说&#xff0c;开展安全教育培训是企业的重点工作&#xff0c;传统培训逐渐跟不上时代变化和工人需求&#xff0c;冶金安全VR模拟仿真培训系统作为一种新型的教育和培训工具&#xff0c;借助VR虚拟现实技术为冶金行业的工人提供一个安全、高效的培训环境。 冶金…

Angular中的管道Pipes

Angular中的管道&#xff08;Pipes&#xff09;是一种强大的工具&#xff0c;它可以处理和转换数据&#xff0c;然后将其呈现在视图中。它们可以被用于排序、格式化和过滤数据等任务。在本文中&#xff0c;我们将介绍Angular中的管道以及如何使用它们来简化开发过程。 管道的基…

Ansible Service模块,使用 Ansible Service模块进行服务管理

Ansible 是一种自动化工具&#xff0c;它可以简化配置管理、应用程序部署和任务自动化等操作。Ansible 的 Service 模块是其中一个重要的模块&#xff0c;它提供了管理服务的功能&#xff0c;使得在远程主机上启动、停止、重启和重新加载服务变得简单和可靠。本文将介绍 Ansibl…

大疆秋招指南,网申测评和面试攻略

大疆秋招内容简介 这是一个非常卷的时代&#xff0c;一到毕业季&#xff0c;各种各样规模不一的公司&#xff0c;纷纷向社会招聘&#xff0c;竞争实力强&#xff0c;知名度越高的企业&#xff0c;往往越能得到能力出众的人才的青睐&#xff0c;也正是在一批批新血液的注入下&a…

户外组网摆脱布线困扰,工业5G网关实现无人值守、远程实时监控

在物联网通信技术发达的2023&#xff0c;网络覆盖对所及之处的全面覆盖&#xff0c;科技发展的促使下很多高危户外场景也在思考如何利用无线技术提高人员安全及现场无人化管理。 煤矿是我们国家不可缺少的重要能源&#xff0c;其开采过程的危险系数也是众所皆知的&#xff0c;…

为什么爬虫要用高匿代理IP?高匿代理IP有什么优点

只要搜代理IP&#xff0c;度娘就能给我们跳出很多品牌的推广&#xff0c;比如我们青果网路的。 正如你所看到的&#xff0c;我们厂商很多宣传用词都会用到高匿这2字。 这是为什么呢&#xff1f;高匿IP有那么重要吗&#xff1f; 这就需要我们从HTTP代理应用最多最广的&#xf…

云上社群学习系统部分接口设计详解

目录 一、项目简介 二、技术选型 三、数据库设计 四、接口设计及思考 回复帖子部分 4.1 回复帖子 4.1.1.1 实现逻辑 4.1.1.2创建Service接⼝ 4.1.1.3 实现Service接⼝ 4.1.1.4 实现Controller 4.1.1.5 测试接口 4.1.1.6 实现前端页面 4.2 点赞帖子 4.2.1.1 参数要求…

探索前端动画之CSS魔法

引言 在现代网页设计中&#xff0c;动画已经成为了吸引用户注意力、提升用户体验的重要手段之一。而在前端开发中&#xff0c;CSS动画是一种常见且强大的实现方式。本篇博客将带你深入探索前端动画中的CSS魔法&#xff0c;通过清晰的思路和完整的示例代码&#xff0c;帮助你掌…

tools/packtool/dragon: 没有那个文件或目录 明明有这个文件

tools/packtool/dragon: 没有那个文件或目录 明明有这个文件 在编译一个工程时碰到这个问题&#xff0c;重装虚拟机&#xff0c;更换ubuntu系统版本都没有解决&#xff0c;看到网上的文章解决了。 ubuntu中执行可执行文件时报错“没有那个文件或目录”的解决办法&#xff08;…

Storm学习之使用官方Docker镜像快速搭建Storm运行环境

文章目录 0.前言搭建完的效果 1.教程1.1.docker 安装 zookeeper1.2. 安装 storm nimbus1.3.docker 安装 supervisor1.4.docker 安装 storm-ui1.5.查看已经启动的容器1.6.提交topology到 storm集群 2.总结3.参考文档 0.前言 Apache Storm 官方也出了Docker 镜像 https://hub.do…

lua使用心得

lua语言的一些注意事项 在控制结构的条件中除了false和nil为假&#xff0c;其他值都为真。所以Lua认为0和空串都是真。lua5.3之前的版本只支持浮点数&#xff0c;lua5.3才引入了对整数的支持&#xff0c;/仅支持浮点数除法&#xff0c;要实现C里的整除效果必须使用双斜杠//超过…

nodejs+vue+elementui美食网站的设计与实现演示录像2023_0fh04

本次的毕业设计主要就是设计并开发一个美食网站软件。运用当前Google提供的nodejs 框架来实现对美食信息查询功能。当然使用的数据库是mysql。系统主要包括个人信息修改&#xff0c;对餐厅管理、用户管理、餐厅信息管理、菜系分类管理、美食信息管理、美食文化管理、系统管理、…

数据可视化工具的三大类报表制作流程分享

电脑&#xff08;pc&#xff09;、移动、大屏三大类型的BI数据可视化报表制作步骤基本相同&#xff0c;差别就在于尺寸调整和具体的报表布局。这对于采用点击、拖拉拽方式来制作报表的奥威BI数据可视化工具来说就显得特别简单。接下来&#xff0c;我们就一起看看不这三大类型的…

界面组件DevExpress Reporting——支持图表本地化和可绑定属性

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 在最近的更新(v23.1)中&#xff0c;官方扩展了…

centos7 部署kubernetes(带自动部署脚本)

目录 一、实验规划 1、规划表 2、安装前宿主机检查 1.配置主机名 2.制作ssh免密&#xff08;VM1中执行&#xff09; 3.修改hosts 文件 4. 修改内核相关参数 5.加载模块 6. 清空iptables、关闭防火墙、关闭交换空间、禁用selinux 7. 安装ipvs与时钟同步 8.配置docker的…