这是我参与「第五届青训营 」伴学笔记创作活动的第 四 天
前端技术栈之TS入门| 青训营笔记
简单了解一些TS中的静态类型优势一些基础语法类型高级类型等。
- 什么是TypeScript
- TS基础语法
- 高级类型
什么是TypeScript
什么是TS官方给出的解释是:TypeScript是JavaScript的一个超集。
自我查阅:TS是微软开发出来的一个开源编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。而本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。
编辑器推荐:VSCode
静态类型优势
静态类型:
- 可读性增强:基于语法解析TSDoc,ide增强。
- 可维护性增强:在编译阶段暴露大部分错误。
- 多人合作的大型项目中,获得更好的稳定性和开发效率。
js的超集
js的超集:
- 包含于兼容所有JS特性,支持共存
- 支持渐进式引入与升级
TS基础语法
基础语法类型分为:
- 数据类型
- 对象类型
- 函数类型
- 函数重载
- 数组类型 TS补充类型:
- 空类型,表示无赋值。
- 任意类型,是所有类型的子类型。
- 枚举类型:支持枚举值到枚举名的正,反向映射。
- 泛型。
高级类型
高级类型:
联合/交叉类型
为书籍列表编写类型,类型声明繁琐,存在较多重复。
联合类型:IA|IB,联合类型表示一个值可以是集中类型之一。简述(相当于取他们类型的交集,可以给变量定义多个类型)
交叉类型:IA&IB;多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。简述(将多个类型合并成一个类型,该类型具有所有类型的特性(取他们类型的合计))
类型保护与类型守卫
类型IA|IB上不存在属性啊。类型IB上不存在属性a。访问联合类型时,处于程序安全,仅能访问联合类型中的交集部 分。
类型守卫:定义一个函数,它的返回值是一个类型谓词,生效范围为子作用域。
牵引类型:关键词【keyof】,其相当于取值对象中的所有key组成的字符串字面量
函数返回值类型
关键字【extends】跟随泛型出现时,表示类型推断,其表达可类比三元表达式
关键字【infer】出现在类型推荐中,表示定义类型变量,可以用于指代类型。