TypeScript(二)基本数据类型

news2024/9/29 17:38:55

前言

距离上篇博客已有两年了,对TS也有了一定的认识,于是计划继续更新系列文章

基本数据类型

在JS中,基本数据类型有:Boolan(布尔),Number(数字),String(字符串),Null(空值),Undefined(未定义),Symbol(标识符,ES6新增),Bigint(任意位整数,精度在53位以内,ES10新增)。

而在TS中,除了上面的类型外,基本类型还有Void(缺少值)通常表示函数无返回值,any(任意值)

变量定义

在JavaScript中,我们通常使用var定义变量,在es6中新增了let和const的声明变量的支持,用法和var一样,通过var 变量名或var 变量名=赋值来定义新的变量。
而在TypeScript中,我们同样可以使用以上方法定义新的变量

let _boolean = false
var _string = 'hello'
const _num = 1024

但是由于TS是强类型语言,所以我们声明变量时需要对变量类型做一个类型的定义,否则就和写JS一样了

变量关键字 变量名:变量类型=变量值
let _boolean: boolean = false
var _string: string = 'hello'
const _num: number = 1024

用法

Boolan(布尔)

布尔值,只能是truefalse

const bool: boolean = false // 基本用法
const bool1: boolean = Boolean() // 函数传undefined默认false
const bool2: boolean = Boolean(true) // 函数
const bool3: boolean = new Boolean(false).valueOf();// 构造函数

Number(数字)

数字,包括整数和浮点数

const num: number = 10// 默认十进制
const num1: number = 0b01011// 二进制
const num2: number = 0o14567// 八进制
const num3: number = 0xffaec// 十六进制
const num4: number = NaN// 非数字
const num5: number = Infinity// 无穷
const num6: number = 1.5// 小数
const num7: number = 19e3// 科学计数法

String(字符串) 

字符串,可以使用单引号、双引号或反引号 ` ` 表示

const str: string = "zhangsan"// 字符串
const str1: string = '张三' // 中文
const str2: string = `I am ${str}` // 字符串模板

Null(空值)和Undefined(未定义)

null通常表示一个变量的值是空或不存在,而undefined表示一个变量未被赋值或未定义

let val: null = null // val只能等于null
let val1: undefined = undefined // val1只能等于undefined
val = 1 // 抛错,无法赋值
val1 = 2 // 抛错,无法赋值

null和undefined是所有类型的子集,也就是变量初始状态都可以写成null和undefined

let val:number= null
val = 1 

Symbol(标识符) 

唯一的值,常用于对象属性的键

const sym: symbol = Symbol("abc")
const sym1: symbol = Symbol(123)

Bigint(长整数)

表示大于2^53-1的整数

const big: bigint = 12345n
const big1: bigint = BigInt(111)

Void(缺少值)

void通常用来表示函数没有返回值,当然也可以使用null和undefined赋值(在严格模式下,null不能赋值给void类型)

tips:void 0可以看作undefined,一般可以使用val===void 0 判断值是否是undefined(因为在IE8中undefined可以被修改为其他值,使用void 0可以保证获得的是一个undefined值)

const vo: void = null // 严格模式下会报错
const vo1: void = undefined
const fn = (): void => {
    const str: string = 'hello'
    console.log(str)
    return void 0 // 不写这句默认会给提示:"fn" doesn't return anything
}
const vo2: void = fn()

any(任意值)

any用来表示可以赋予任意类型的值。任何类型都可以赋值给 any 类型的变量

在ts中声明了一个类型的变量无法赋值另一种类型的值,如:

let val: number = 0
val = "a"// 报错:不能将类型“string”分配给类型“number”

但是如果加上any类型,就可以像js一样进行不同类型数据赋值

let val: any = 0
val = "a"
val = false

相关文章

TypeScript 入门教程

TypeScript: Documentation - 基础

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

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

相关文章

什么是事务?Mysql事务怎么用?Mybatis怎么操作事务的?Spring呢?快进来看看

目录 一、计算机中的事务 1. 概念 2.事务的ACID特性 3.事务类型 1)手动事务 2)自动事务 4.为什么需要事务? 5.优点 二、MySQL事务 1.语法格式: 2.关闭自动提交,开启新事务 3.开启自动提交,关闭事务控制 三、Mybatis事务 Mybatis开关事务控…

Meta AR眼镜主管:正开发史无前例的AR,但要解决很多困难

前不久,Meta CTO Andrew Bosworth在个人博客上“怒斥”公司内部不够专注,应该将资源投入在有核心竞争力、高投资回报率的业务上,而不是开发取悦用户却不赚钱的产品。尽管删除一些小众功能后,用户可能会不满,但为了让Me…

Bi系统跟数据中台的区别是什么?

随着数据时代的发展,BI分析是当今数据时代必不可少的能力之一。BI系统通过系统化产品化的方法,能够大幅降低数据的获取成本、提升数据使用效率。同时借助可视化、交互式的操作,可以高效支持业务的分析及发展。 BI如此火热,随之而…

openpnp - 增加散料飞达

文章目录openpnp - 增加散料飞达概述笔记飞达在设备上的放置方向编带料在飞达中的方向将相机移动到飞达料的第一孔的中心捕获保存第1孔中心编带设置测试相机位置是否正确测试吸嘴的位置是否正确将吸嘴回到安全位置测试是否能正确抓料ENDopenpnp - 增加散料飞达 概述 使用open…

MySQL性能调优与设计——MySQL调优——慢查询

MySQL调优–慢查询 MySQL调优金字塔 很明显从图上可以看出,越往上走,难度越来越高,收益却越来越小。 对于架构调优,在系统设计时首先需要充分考虑业务的实际情况,是否可以把不适合数据库做的事情放到数据仓库、搜索引…

分享111个HTML旅游交通模板,总有一款适合您

分享111个HTML旅游交通模板,总有一款适合您 111个HTML旅游交通模板下载链接:https://pan.baidu.com/s/1VHJSBVJbj4PQpPAwxysJBg?pwd8b17 提取码:8b17 Python采集代码下载链接:采集代码.zip - 蓝奏云 汽车租赁平台网页模板 汽…

时的科技迎1亿融资,这辆“空中的士”能否实现真正飞行?

近期,进行载人eVTOL的研发、生产和销售的时的科技宣布完成1亿元Pre-A轮融资,成立不到两年,这已是时的科技的第三轮融资,此前,时的科技已获得蓝驰创投和德迅投资千万美元种子轮投资。在不少人看来,时的科技所…

恢复出厂设置在哪里?抓住这份官方指南(Win10电脑)

当电脑经常报告错误,并伴有运行缓慢和停滞等问题时,很可能是计算机老化造成的。想要解决这个问题,可以通过恢复出厂设置使得电脑恢复成初始状态,自然而然问题就解决了。 但是很多人不知道,恢复出厂设置在哪里&#xf…

【自学Linux】Linux运行级别

Linux运行级别 Linux运行级别教程 Linux 可以支持运行级别的设置,运行级别就是操作系统当前正在运行的功能级别,级别是从 0 到 6。Centos7 系统之前的版本是通过 /etc/inittab 文件来定义系统,而 CentOS7 用的是 /lib/systemd/system/runle…

MySQL数据库调优————JOIN优化

JOIN的种类 LEFT JOIN SELECT <select_list> FROM Table_A A LEFT JOIN Table_B B ON A.Key B.Key求的是A所有的数据以及A与B的交集 RIGHT JOIN SELECT <select_list> FROM Table_A A RIGHT JOIN Table_B B ON A.Key B.Key求的是B所有的数据以及A和B的交集 IN…

Nginx 新增模块 http_image_filter_module 来实现动态生成缩略图

前言 通过 nginx 的 HttpImageFilterModule 模块裁剪过大的图片到指定大小&#xff0c;这个nginx自带的模块是默认关闭的&#xff0c;所以需要重新编译nginx加上此模块。 一、编译 nginx 1.查看 nginx 模块 由于nginx 是之前装好的&#xff0c;这里需要先看一下是否安装了H…

Sentinel简单使用

目录 1.官网 2.主要作用 3.安装启动 3.功能详细 3.1实时监控 3.2 簇点链路 3.3流控规则 3.4熔断规则 3.4热点key限流 3.5系统规则 4.SentinelResource注解解释 1.官网 gitHub GitHub - alibaba/Sentinel: A powerful flow control component enabling reliability…

尚医通 (十六)搭建平台用户系统前端环境 | 用户平台首页数据

目录一、服务端渲染技术NUXT1、什么是服务端渲染2、什么是NUXT二、NUXT环境初始化1、下载压缩包2、解压3、修改package.json4、修改nuxt.config.js5、在命令提示终端中进入项目目录6、安装依赖7、测试运行8、NUXT目录结构9、封装axios10、引入element-ui三、首页静态数据整合1、…

Docker镜像发布到阿里云和私有库

目录 一、Docker镜像 &#xff08;一&#xff09;概述 &#xff08;二&#xff09;Docker镜像加载原理 &#xff08;三&#xff09;镜像分层结构优势 &#xff08;四&#xff09;重点理解 &#xff08;五&#xff09;docker commit操作实例 &#xff08;六&#xff09;总…

如何解决nas无公网问题,实现kodbox可道云内网映射外网访问

目前&#xff0c;市面上有很多NAS产品&#xff0c;如群晖、威联通以及华硕NAS等&#xff0c;它们都自带提供了一些基础的文件管理功能&#xff0c;有的也可以直接在NAS上使用文件管理的应用程序。 kodbox可道云是一个基于 Web 技术的私有云和在线文件管理系统&#xff0c;有着…

考了PMP证后工资大概是多少 ?(含pmp资料)

这个岗位的不同还有每个公司的薪资也是不一样的&#xff0c;具体的数字肯定是没有的&#xff0c;但大概的比例还是有的&#xff0c;据PMI调查&#xff0c;在获得PMP证书的人当中&#xff0c;在PMP认证一年后&#xff0c;年薪有所增长的比例为66%&#xff0c;上涨幅度主要集中在…

抓包工具Charles(二)-移动端APP抓包(设置手机代理、安装证书)

安装好Charles之后&#xff0c;还只能捕获电脑的接口请求想要抓取移动设备的APP还需要设置代理、安装证书。 文章目录一、抓包原理二、手机设置网络代理1、 查看电脑的IP地址&#xff08;local IP address&#xff09;2、设置手机网络代理&#xff08;1&#xff09;iOS设备&…

美团:某动态线程池框架是官方开源的么?

大家好&#xff0c;我是马称。 最近&#xff0c;有很多同学在微信上问我这么一个问题&#xff1a; Hippo4j 动态线程池框架是美团开源的么&#xff1f; 类似于这样的问题还挺多&#xff0c;在这里统一回复下&#xff1a; 美团官方并没有开源任何关于动态线程池的框架。 美…

【深度学习】多分类问题和多标签分类问题

上一章——激活函数 文章目录什么是多分类问题Softmax贝叶斯公式softmax的损失函数多标签分类问题什么是多分类问题 在之前的课程中&#xff0c;我们学习了二分问题&#xff0c;二分问题中的所有数据会被分类为0和1&#xff08;或者Ture和False&#xff09;两种输出标签。但是…

Java_小项目书城

1.概述 书城的基本功能&#xff1a; 展示书籍上新书籍下架书籍退出应用 书城项目所涉及到的知识点&#xff1a; 用户交互–键盘录入分支结构&#xff0c;循环结构面向对象的思维&#xff0c;封装对象集合的使用 2.菜单的编写 这部分代码就是读取用户键盘的录入&#xff0…