【青训营】- TypeScript进阶笔记-阿里云开发者社区

开发者社区> 答案命运> 正文

【青训营】- 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类型和构造器返回值的类型相同。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【青训营】- TypeScript进阶笔记
【青训营】- TypeScript进阶笔记
10 0
ECS进阶线路D5-搭建个人Leanote云笔记本
ECS进阶线路D4-搭建个人Leanote云笔记本
684 0
JavaScript面向对象的编程指南学习笔记
JavaScript面向对象的编程指南学习笔记 第一章 1,用自己的语言描述出,什么是对象、类、封装、聚合、继承、多态? 对象,拥有属性和方法的任何抽象概念。 类,可以实例化,有共同属性或方法(行为)的相似对象,的模板 封装,提供接口,隐藏接口的实现 聚合,将大功能(对象)拆分成小功能(小对象)去实现的逆过程。
8844 0
JavaScript进阶【三】JavaScript面向对象的基础知识复习
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/79547464 ...
785 0
ECS 7天实践训练营 进阶路线 Day5 搭建个人Leanote云笔记本
本场景将提供一台配置了CentOS 7.7的ECS实例(云服务器)。可以参考本教程的操作基于已有的环境搭建一个Leanote云笔记本。
175 0
2010年SQLite3学习笔记之五(进阶SQLite3中级编程知识线路图)
进阶SQLite3中级编程知识线路图 引言: 小老虎多多的针对SQLite3中级编程的知识要点。 一.编码转换 UTF8编码与GB2312 编码的类型相互转换; 二.安全保护 即对SQLite3进行安全保护,即密码保护; 三.
830 0
JavaScript进阶【四】JavaScript中的this,apply,call的深入剖析
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/79646265 ...
940 0
Spark学习之编程进阶——累加器与广播(5)
Spark学习之编程进阶——累加器与广播(5) 1. Spark中两种类型的共享变量:累加器(accumulator)与广播变量(broadcast variable)。累加器对信息进行聚合,而广播变量用来高效分发较大的对象。 2. 共享变量是一种可以在Spark任务中使用的特殊类型的变量。 3. 累加器的用法: 通过在驱动器中调用SparkContex
1374 0
+关注
答案命运
人有多自律,就有多自由!
602
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载