typeScript 基础类型 (三)
typeScript 的基础类型包含 Boolean、Number、String、null、undefined 以及 ES6 的 Symbol 和 ES10 的 BigInt。
下面介绍每种类型的使用和规则
一、字符串类型介绍
// 普通的字符串声明方式
let str:string = 'momo~ssds'
// 也可以使用模版字符串 let str1:string = `模版字符串${str}` console.log('str1 :>> ', str1);

二、数字类型
// 支持十六进制、十进制、八进制和二进制; let num1: number = NaN; //Nan
let num2: number = 454555; //普通数字
let num3: number = Infinity; //无穷大
let num4: number = 456 //十进制
let num5: number = 0xf00d; //十六进制
let num6: number = 0b1010; //二进制
let num7: number = 0o744; //八进制s
三、布尔类型
// 布尔类型
// 注意,使用构造函数 Boolean 创造的对象不是布尔值: // let createdBoolean: boolean = new Boolean(1)
//这样会报错 应为事实上 new Boolean() 返回的是一个 Boolean 对象 // 事实上 new Boolean() 返回的是一个 Boolean 对象 需要改成 let createdBoolean: Boolean = new Boolean(1)
let booleand: boolean = true //可以直接使用布尔值
这里需要注意这个

4.空值类型
js 中没有空值(Void)的概念,在 TypeScript 中,可以用 void 表示没有任何返回值的函数
function voidFn(): void { // 这里的void 就表示此函数的返回值为空值
console.log('test void')
}
当一个函数无需返回值的时候我们就可以给这个函数定义成空值返回
另外 void也可以定义undefined 和 null类型
let u: void = undefined
let n: void = null;

但是当我们给void 定义成null的时候,报错了,这个是因为ts的严格模式下是不允许给void 设置成null的,要放开这个限制,可以修改tsconfig.json 文件把严格模式去掉

我们把这一行去掉后,发现就不报错了

5.Null和undefined类型
// null 和underfined 也是基础类型 我们是可以这么写的
let u: undefined = undefined; //定义undefined
let n: null = null; //定义null
void 和 undefined 和 null 最大的区别
与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 string 类型的变量:
比如我们这么写会报错的

//下面这么写就可以
let test: null = null
let num2: string = "1" num2 = test //或者这样的
let test: undefined = undefined
let num2: string = "1" num2 = test
6、Any 类型 和 unknown 顶级类型
any类型就是无法确定是哪种类型的时候就可以使用,其实变相告诉ts不要去检查这个变量的类型

TypeScript 3.0中引入的 unknown 类型也被认为是 top type ,但它更安全。与 any 一样,所有类型都可以分配给unknown
unknow unknow类型比any更加严格当你要使用any 的时候可以尝试使用unknow
//unknown 可以定义任何类型的值
let value: unknown; value = true; // OK
value = 42; // OK
value = "Hello World"; // OK
value = []; // OK
value = {}; // OK
value = null; // OK
value = undefined; // OK
value = Symbol("type"); // OK //这样写会报错unknow类型不能作为子类型只能作为父类型 any可以作为父类型和子类型
//unknown类型不能赋值给其他类型
let names:unknown = '123'
let names2:string = names //这样就没问题 any类型是可以的
let names:any = '123'
let names2:string = names //unknown可赋值对象只有unknown 和 any
let bbb:unknown = '123'
let aaa:any= '456' aaa = bbb

还有一个需要注意的是,如果对象被定义成any和unknow 表现是不一样的,定义成unknow 类型的对象是无法直接使用对象中的属性和方法的
// 如果是any类型在对象没有这个属性的时候还在获取是不会报错的
let obj: any = { b: 1 }
obj.a // 如果是unknow 是不能调用属性和方法 下面的这个写法是会报错的
let obj1: unknown = { b: 1, ccc: (): number => 213 }
obj1.b
obj1.ccc()

下一节介绍接口和对象类型
typeScript 基础类型 (三)的更多相关文章
- TypeScript基础类型,类实例和函数类型声明
TypeScript(TS)是微软研发的编程语言,是JavaScript的超集,也就是在JavaScript的基础上添加了一些特性.其中之一就是类型声明. 一.基础类型 TS的基础类型有 Boolea ...
- Typescript基础类型
1.布尔值__boolean 2.数字__number----除了支持十进制和十六进制字面量,Typescript还支持ECMAScript 2015中引入的二进制和八进制字面量. 3.字符串__st ...
- 2022.07.25 TypeScript基础类型介绍
基础类型: 字符串(string)(String) let first: string = 'niu' // 直接赋值 let fourth: string = `niu` // 模板字符串 let ...
- typescript基础类型(学习笔记非干货)
布尔值 Boolean let isDone:boolean=false; 数字 Number let decLiteral:number=6; let hexLiteral:number=0xf00 ...
- TypeScript完全解读(26课时)_2.TypeScript完全解读-基础类型
2.TypeScript完全解读-基础类型 src下新建example文件夹并新建文件.basic-type.ts.截图中单词拼错了.后需注意一下是basic-type.ts 可以装tslint的插件 ...
- 使用Typescript重构axios(三)——实现基础功能:处理get请求url参数
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- TypeScript 素描-基础类型
博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...
- TypeScript学习笔记之基础类型
从今天开始学习typescript了,记录ts学习点滴,最后,使用ts结合nodejs开发后端应用,一起共勉吧: typescript最新版本2.6,所有演示代码均基于此版本 开始之前确定安装了如下n ...
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
- TypeScript 之 基础类型、高级类型
基础类型:https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Basic%20Types.html 高级类型:https ...
随机推荐
- spring boot使用多数据源体验
小白是一名.net程序员,之前小白介绍了过了自己的博客系统http://www.ttblog.site/,用.net写厌了,所以想学下java尝尝鲜,于是小白准备用spring boot来实现一个博客 ...
- python的dir()函数
dir()函数不带参数时,返回当前范围内的变量.方法和定义的类型列表:
- Windows添加软件开机自启动
两种方式 1.添加快捷方式到开始菜单 打开我的电脑找到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 文件夹, 如果难找的话可 ...
- tracking调研
常用框架有以下三种: Separate Detection and Embedding (SDE- 物体检测,特征提取与物体关联),JOINT Detection and Embeddin ...
- JavaScript Library – YouTube Embedded、YouTube Player API、YouTube Data API
YouTube Embed Video 参考: Embed videos & playlists 它和 Google Maps Embed 类似,是通过 iframe 完成的. <ifr ...
- Flutter 3.3 正式发布
Flutter 3 是我们正式为全平台提供支持的一个重量级里程碑,距离它的发布仅过去了三个月,今天让我们有请 Flutter 3.3 正式版!近三个月我们并没有放慢更新迭代的速度--自 Flutter ...
- [Tkey] CodeForces 1267G Game Relics
太神了这题,膜拜出题人 orz. 思考一 首先是大家都提到的一点,先抽卡再买.这里来做个数学分析. 假设我们还剩 \(k\) 种没有买,其实我们是有式子来算出它的花费期望的.WIKI 上提到,假设一个 ...
- 浅谈数栈产品里的 Descriptions 组件
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:修能 What's? 数栈产品里的 Description ...
- 《赵渝强》《Docker+Kubernetes容器实战派》新书上市!!!
用一本书掌握Docker与Kubernetes核心内容!!! 本书基于作者多年的教学与实践经验编写,分为上下两篇,共20章. 上篇(第1-11章)介绍Docoker,包含:Docker入门.Docke ...
- Java日期时间API系列28-----Jdk8中java.time包中的新的日期时间API类,计算节假日和二十四节气。
1.节日信息计算代码 package com.xkzhangsan.time.holiday; import java.time.DayOfWeek; import java.time.LocalDa ...