【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) {}
}
相关文章:
【02】基础知识:typescript数据类型
1、布尔类型 boolean let flag: boolean false2、数字类型 number let num: number 6 //十进制 let num2: number 0xf00d //十六进制 let num3: number 0b1010 //二进制 let num4: number 0o744 //八进制3、字符串类型 string 用双引号(“)或单引…...
DIP: NAS(Neural Architecture Search)论文阅读与总结(双份快乐)
文章地址: NAS-DIP: Learning Deep Image Prior with Neural Architecture SearchNeural Architecture Search for Deep Image Prior 参考博客:https://zhuanlan.zhihu.com/p/599390720 文章目录 NAS-DIP: Learning Deep Image Prior with Neural Architecture Search1. 方法…...
AI:02-基于深度学习的动物图像检索算法的研究
文章目录 一、算法原理二、代码实现三、实验结果四、总结深度学习在计算机视觉领域中的应用越来越广泛,其中动物图像检索算法是一个重要的应用场景。本文将介绍一种基于深度学习的动物图像检索算法,并提供相应的代码实现。 一、算法原理 本算法采用卷积神经网络(Convolutio…...
IDEA项目实践——Spring集成mybatis、spring当中的事务
系列文章目录 IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介 IDEWA项目实践——mybatis的一些基本原理以及案例 IDEA项目实践——动态SQL、关系映射、注解开发 IDEA项目实践——Spring框架简介,以及IOC注解 IDEA项目实践—…...
6-Ngnix配置反向代理
1.前提 虚拟机能连接外网 仿真http应用需在本虚拟机启用(原因:只有一台虚拟机做测试) http_8080和http_8081要启用(http测试应用) [rootcent79-2 ~]# ls -l http_* -rwxr-xr-x 1 root root 6391676 Jul 19 13:39 http_8080 -rwxr-xr-x 1 …...
构建 LVS-DR 群集、配置nginx负载均衡。
目录 一、基于 CentOS 7 构建 LVS-DR 群集 1、准备四台虚拟机 2、配置负载调度器(192.168.2.130) 3、部署共享存储(192.168.2.133) 4、配置两个Web服务器(192.168.2.131、192.168.2.132) 测试集群 二…...
【UE4的垃圾回收】
UE4的垃圾回收 1 UObjects及子类1.1 UObjects类包含UObjects成员(UPROPERTY)1.2 UObjects类包含非UObjects成员 2 非UObject及子类2.1 非UObjects类包含UObjects成员12.2 非UObjects类包含UObjects成员22.3 非UOjbects类包含非UObjects成员 3 UStructs4 …...
nginx负载均衡的几种配置方式介绍
一.负载均衡含义简介 二.nginx负载均衡配置方式 准备三台设备: 2.190均衡服务器,2.191web服务器1,2.160web服务器2,三台设备均安装nginx,两台web服务器均有网页内容 1.一般轮询负载均衡 (1)…...
uniapp发布插件显示components/xxx文件没找到,插件格式不正确
uniapp发布插件显示components/xxx文件没找到,插件格式不正确 将插件文件这样一起选中,然后右键压缩成zip文件,而不是外层文件压缩...
Kubernetes(K8s)入门
一、Kubernetes是什么 Kubernetes是什么? 首先,它是一个全新的基于容器技术的分布式架构领先方案。这个方案虽然还很新,但它是谷歌十几年以来大规模应用容器技术的经验积累和升华的一个重要成果。确切地说,Kubernetes是谷歌严格保密十几年的…...
[前端系列第3弹]JS入门教程:从零开始学习JavaScript
本文将带领大家,从零开始学习JavaScript,fighting~ 目录 一、JavaScript简介 二、变量和数据类型 三、注释和分号 四、算术运算符 五、表达式和语句 六、代码块和作用域 七、函数(最重要) 一、JavaScript简介 JavaScript&…...
html 计算器界面
其他链接: https://www.freecodecamp.org/news/how-to-build-an-html-calculator-app-from-scratch-using-javascript-4454b8714b98/ https://codepen.io/pen/tour/welcome/start 下面展示一些 内联代码片。 <!DOCTYPE html> <html lang"en">…...
性能测试工具——LoadRunner(1)
一、LoadRunner三大组件 1.1每个组件是干什么的 VUG:录制脚本(编写脚本) Controller:设计场景,运行场景 Analysis:产生性能测试报告 1.2三大组件之间的关系 二、LoadRunner脚本录制 2.1了解WebTours系统 启动WebTours…...
安科瑞物联网表在虚拟电厂的应用
安科瑞 崔丽洁 应用场景 一般应用于控制中心 功能 能计量当前组合有功电能,正向有功电能,反向有功电能,正向无功电能,反向无功电能; ADW300支持RS485通讯、LORA通讯、NB、4G及Wifi通讯; 三套时段表,一年可以…...
XSS和CSRF
web安全策略和同源策略的意义 如果登陆了一个网站,不小心又打开另一个恶意网站,如果没有安全策略,则他可以对已登录的网站进行任意的dom操作、伪造接口请求等,因此安全策略是必要的; 浏览器的同源策略限制了非同源的域…...
2.物联网LWIP网络
一。创建工程 1.Cubemx创建工程 (1)操作系统的时钟配置 (2)配置ETH 注意:根据底板原理图,不是核心板原理图 (3)配置USART1串口,配置为异步通信 注意:配置结…...
tomcat多实例与动静分离
实验:在一台虚拟机上配置多台tomcat 1.配置 tomcat 环境变量 vim /etc/profile.d/tomcat.sh source /etc/profile.d/tomcat.sh 2.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号 vim /usr/local/tomcat/tomcat2/conf/…...
K8S下SpringCloud应用无损下线
废话不多说直接上代码,一种2个步骤 步骤一: 添加以下代码到SpringCloud应用中 import cn.hutool.extra.spring.SpringUtil; import com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration; import lombok.RequiredArgsConstructor; import lo…...
CEC2013(MATLAB):遗传算法(Genetic Algorithm,GA)求解CEC2013的28个函数
一、遗传算法GA 遗传算法(Genetic Algorithm,GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索优化方法,它模拟了自然选择和遗传中发生的复制、交叉(crossover)和变异(mutation)等现象,从任…...
Linux tar包安装 Prometheus 和 Grafana
0. 介绍 用tar包的方式安装 Prometheus 和 Grafana Prometheus:开源的监控方案Grafana:将Prometheus的数据可视化平台 1. Prometheus 1. 下载 与 解压 官网下载: https://prometheus.io/download/#prometheus上传至机器解压命令:tar -xzf prometheus-*.tar.gz 2. 启动与暂…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
