深入浅出TypeScript | 青训营笔记

53 阅读2分钟

这节课将学习以下内容:

TS基础

interface

高级进阶

泛型

TS声明文件

为什么要使用ts?

ts是js的超类,用于解决大型项目的代码复杂性,是一种强类型,支持静态和动态类型,可以在编译期间发现并纠正错误。并且不能改变变量的数据类型。

gethub上TS的学习资源:github.com/dzharii/awe…

TS到JS在线演练工具:www.typescriptlang.org/zh/play

一.TS基础

1.boolean、number、string

2.undefined、null

3.any、unknown、void

4.never

5.数组类型口

6.元组类型tuple

二.interface

定义∶接口是为了定义对象类型

特点:

-可选属性:?

-只读属性:readonly

-可以描述函数类型

-可以描述自定义属性

总结:接口非常灵活duck typing

三.类

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

特点∶

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

-抽象类:

-只能被继承,不能被实例化

-作为基类,抽象方法必须被子类实现

  • interface约束类,使用implements关键字

四.高级进阶

1.联合类型Ⅰ

2.交叉类型&

3.类型断言

4.类型别名(type vs interface)

-定义∶给类型起个别名

-相同点: 1.都可以定义对象或函数 2.都允许继承

-差异点︰

  1. interface是TS用来定义对象,type是用来定义别名方便使用;

  2. 2.type可以定义基本类型,interface不行;

  3. interface可以合并重复声明,type不行;

五.泛型

泛型要考虑到可重用性的问题,它不仅支持当前的数据类型,也要支持未来的数据类型.

基本定义∶

1.泛型的语法是◇里面写类型参数,一般用T表示;

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

1.定义要使用的类型

2.通过TS类型推断,自动推导类型

3.泛型的作用是临时占位,之后通过传来的类型进行推导;

泛型工具类型-基础操作符

typeof:获取类型

keyof:获取所有键

in:遍历枚举类型

T[K]: 索引访问

extends: 泛型约束

六.TS声明文件

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

.d.ts:声明文件定义

@types:三方库TS类型包

tsconfig.json:定义TS的配置