TypeScript笔记
概述
●基于JavaScript的语?,增强版。是JavaScript的严格句法超集,JS代码同时是TS代码。
●TS在JS的基础上增加了可选的静态类型和其他特性。
●和JS关键区别
○类型系统,JS是动态类型,TS是静态类型。
○编译,JS是解释型的,可以直接运?在浏览器。TS需要经过编译器转换为JS才能运?。
○浏览器?持,JS直接?持,TS先转为JS。
●TS组成
○语?:语法、关键字和类型注解。
○编译器:TS编译器,将TS转为JS。
○语?服务:为编译器等?具提供智能分析TS代码的?式。
●TS特点
○类型注解
○接?
○类
○继承
○枚举
○泛型
○联合类型
○类型守卫,typeofobjstring
基础类型
●任何类型any
○TS3引?unknown类型,any得类型安全替代品,强制类型检查。
●内置类型
○number:整数、浮点值
○string
1
○Boolean
■?布尔值可以表现得如同布尔值,即真值和假值。
●假值包括:false、0、(空字符串)、null、undefined和NaN。
其他皆为真值。
■?布尔值转换为布尔值,Boolean函数、双否定运算符!!
■
○array
○tuple,具有固定数量元素的数组,其中每个元素可以有不同类型。
○enum,定义?组命名常量。
○void,表示函数不返回任何东?。
○null
○undefined
●?定义类型
○接?
○类
○类型别名,type,类似C++的typedef
■type别名已存在类型
■结合使?:函数、泛型
○联合类型
■与数组:letarr:(number|string)[][1,sa]
■变量:typeaone|twoletb:atwo
○枚举
■?动从0开始分配。也可以设置从某个数字开始,剩余?动计数。
■字符串枚举,?动赋值。
■异构枚举,值混合数字、字符串。
■运?时枚举,存在于运?时,类似对象使?。
■编译时枚举,分配不属于枚举得值,编译器报错。
■环境枚举,告诉枚举在其他地?使?。declare关键字。
■相?于对象,类型安全、简洁。
○交叉类型:typeabc,同时有b和c的类型。
●never类型
○TypeScript中的never类型通常被称为最底层类型或空类型。它表示?个永远不会发?的
2
类型。
○场景
■表示不可能的情况
■处理穷尽性检查
■在永远不会返回的函数中
○?较void
■void类型?于当函数不返回任何值时,但它确实完成了执?。
■never类型?于当函数永远不会完成执?或总是抛出错误时。
○使?
■任何类型可以赋值给never,never不能赋值给其他类型
■不能在never上调??法。
■在联合类型上使?never,允许但?效果,会忽略never类型。
■交叉类型使?,任何类型和never交叉得到never。
●symbol
○唯?且不可变标识符。
○?法