深入浅出TypeScript丨青训营笔记

71 阅读2分钟

1为什么要学习TS

image.png TypeScript是JavaScript的超集,具有可选的类型并可以编译为纯JavaScript。

从技术上讲TypeScript就是具有静态类型的 JavaScript

TS带来了什么

·类型安全

·下一代JS特性

·完善的工具链

image.png

image.png

2TS基础

基础类型

1Boolean、number/string

image.png 2枚举enum

TS中特有的类型:对枚举值做类型定义 数字枚举、数值映射 3any、unknown、void any作为类型可以涵盖您想要的任何内容,unknown是其类型安全的对应对象。

转义类型时,any都将任何JavaScript变量赋给它。经常用于对尚未检查且类型未知的传入变量时。

unknown只允许反向赋值

4never 永远不存在的值的类型,例如将引发异常的函数。

防御性编程的场景使用 image.png

5数组类型 根据技术类型和对象类型增加标识和定义

6元组类型 tuple

特殊的数组类型

函数类型

定义

输入参数

输出参数

函数重载

image.png

interface接口

定义:接口是为了定义对象类型 特点: ·可选属性

·只读属性:readonly

·可以描述函数类型

·可以描述自定义属性

接口非常灵活

image.png

定义:写法和JS差不多,增加了一些定义

特点:

·增加了public、private、protected修饰符

·抽象类:

(1)只能被继承,不能被实例化

(2)作为基类,抽象方法必须被子类实现

·interface约束类使用implements关键字

image.png

3TS进阶

高级类型

联合类型丨

交叉类型&

image.png

类型断言

标识符:属性前置;arg image.png

类型别名(type vs interface)

定义:给类型定义一个别名

相同点: (1)都可以定义对象或函数

(2)都允许继承

差异点: (1)interface是TS用来定义对象,type是用来定义别名方便使用 (2)type可以定义基本类型。interface不行 (3)interface可以合并重复申明,type不行

interface是接口概念,描述对象;type是类型别名概念

泛型

image.png

什么时候需要泛型

image.png 基本定义: (1)泛型的语法是<>里面写类型参数,一般用T表示;

(2)使用时有两种方法指定类型:

·定义要使用的类型

·通过TS类型推断,自动推到类型

(3)核心:泛型的作用是临时占位,之后通过传来的类型进行推导

基础操作符

·typeof:获取类型

image.png ·keyof:获取所有键

image.png ·in:遍历枚举类型

image.png

·T[K]:索引访问

image.png

·extends:泛型约束

image.png

常用工具类型

image.png

4实战&工程向

声明文件

· declare:三方库需要类型声明文件

· .d.ts:声明文件定义

· @types:三方库类型包

· tsconfig.json:定义TS的配置

泛型结束后端接口类型

image.png

5课程总结

image.png