【青训营】- TypeScript进阶笔记

简介: 【青训营】- TypeScript进阶笔记

这是我参与8月更文挑战的第22天,活动详情查看:8月更文挑战

基础知识

any

  1. any比较特殊,其实它既是Top TYPE又是Bottom Type,也就是说: any类型的常量/变量可以与任何其他类型的变量/常量相互赋值,但是any类型是不安全的,无语言服务的,所以应该尽量避免使用。
  2. any具有传染性: 它会使它所触及的地方变得不安全,所以TS在3.0引入了类型安全的unknown类型作为Top Type.
  3. any会隐藏bug
  4. any会隐藏代码设计细节:丢失了对数据类型的设计

unknown

  • unknown类型必须显示注解,TS不会把任何值推导为unknown
  • unknown类型只能进行等于和不等于比较
  • 只有类型收窄后才能进行相应运算或函数调用

boolean

布尔类型只有两个元素:true和false

  • let var变量会被拓宽成boolean类型,const常量就是对应字面量类型
  • true和false的联合类型,会被反推回boolean类型

TypeScript进阶

类型操作keyof

keyof是在TS2.1引入的,它获取类型上所有已知、public键对应的类型联合。

接口

接口与类型别名可以认为是同一概念的两种语法。下面介绍下接口与类型别名的区别。

  1. 类型别名更为通用,其右侧可以包含类型表达式,但接口右侧只能是某种结构。
  2. 接口间继承时TS会检查二者关系,但类型联合时TS会尽最大阻力尝试不会报错。
  3. 同一个作用域的多个同名接口声明会被合并。而多个同名类型别名会报错。

class是ES2015引入的新特性,class本质上还是一个函数。作为构造器的函数,必须具有prototype属性,并且prototype类型和构造器返回值的类型相同。

相关文章
|
7月前
|
JavaScript 前端开发 测试技术
[小笔记]TypeScript/JavaScript数组转置
[小笔记]TypeScript/JavaScript数组转置
75 0
|
7月前
|
JavaScript 前端开发 测试技术
[小笔记]TypeScript/JavaScript模拟Python中的Range函数
[小笔记]TypeScript/JavaScript模拟Python中的Range函数
69 0
|
4月前
|
存储 JavaScript 前端开发
深入浅出TypeScript | 青训营笔记
深入浅出TypeScript | 青训营笔记
36 0
|
5月前
|
JavaScript 前端开发 索引
TypeScript(十)泛型进阶
TypeScript(十)泛型进阶
36 0
|
6月前
|
JavaScript 前端开发 程序员
typescript入门笔记分享
typescript入门笔记分享
32 0
|
7月前
|
JavaScript 前端开发
TypeScript极速入门笔记1
TypeScript极速入门笔记1
73 4
|
7月前
|
JavaScript 前端开发 Java
小笔记:如何使用代码注释:关于JavaScript与TypeScript 注释和文档的自动生成
小笔记:如何使用代码注释:关于JavaScript与TypeScript 注释和文档的自动生成
564 0
|
7月前
|
JavaScript 前端开发 测试技术
[小笔记]TypeScript/JavaScript模拟Python中的zip(不使用map)
[小笔记]TypeScript/JavaScript模拟Python中的zip(不使用map)
48 0
|
7月前
|
存储 JavaScript 前端开发
TypeScript笔记(15)—— 深入理解TypeScript中的装饰器
TypeScript笔记(15)—— 深入理解TypeScript中的装饰器
92 0
|
7月前
|
存储 JavaScript 前端开发
TypeScript笔记(5)—— 基本数据类型
TypeScript笔记(5)—— 基本数据类型
70 0
下一篇
无影云桌面