笔记day5 | 青训营

61 阅读2分钟

为什么要学习TypeScript

TypeScript:JavaScript的超集,用于解决大型项目的代码复杂性、强类型,支持静态和动态类型、可以在编译期间发现并纠正错误、不允许改变变量的数据类型。

JavaScript:一种脚本语言,用于创建动态网页、动态弱类型语言、只能在运行时发现错误、变量可以被赋值成不同类型。

TS带来了什么:类型安全、下一代JS特性、完善的工具链。

 

TS基础类型

TS基础类型:boolean、number、string、枚举enum、any、unknown、void、never、数组类型[]、元组类型tuple。

TS函数类型定义:TS定义函数类型时要定义输入参数类型和输出类型。

输入函数:参数支持可选参数和默认参数。

输出函数:输出可以自动推断,没有返回值时,默认为void类型。

函数重载:名称相同但参数不同,可以通过重载支持多种类型。

TS基础-interface定义:接口是为了定义对象类型。

特点:可选属性? 只读属性readonly 可以描述函数类型 可以描述自定义属性 接口非常灵活。

TS基础-类定义:写法和JS差不多,增加了一些定义。

特点:增加了public、private、protected修饰符。

抽象类:只能被继承,不能被实例化、作为基类,抽象方法必须被子类实现。

TS高级类型

TS高级类型:联合类型 |、交叉类型 &、类型断言、类型别名

类型别名(type):给类型起个别名,与interface的相同点:都可以定义对象或函数、都允许继承。差异点:interface是TS用来定义对象,type是用来定义别名方便使用、type可以定义基本类型,interface不行、interface可以合并重复声明、type不行。

泛型:不仅要创建一致的定义良好的API,同时要考虑可重用性的组件。

泛型的基本定义:泛型的语法是<>里面写类型参数,一般用T表示、使用时有两种方法指定类型,一是定义要使用的类型,二是通过TS类型推断,自动推导类型、泛型的作用是临时占位,之后通过传来的类型进行推导。

泛型基础操作符:typeof 获取类型、keyof 获取所有键、in 遍历枚举类型、T[K] 索引访问、extends 泛型约束。

 

TS实战

    声明文件:declare 三方库需要类型声明文件、.d.ts 声明文件定义、@types 三方库TS类型包、tsconfig.json 定义TS的配置。

 

个人心得:

本次课程的内容与TypeScript有关,由浅到深分别讲了TS的作用、TS的基础与进阶以及TS的实战,这次课程让我认识了TypeScript并且有了一定的了解,并且通过TS实战的举例后加深了我对TS的应用。