深入浅出TypeScript课程小记

91 阅读3分钟

深入浅出TypeScript课程小记

个人前言, 我学习前端的流程和大多数人一样,从HTML、CSS到JavaScript,起初我是不知道有TypeScrip的,但在后续学习react框架的时候,了解到了这门JavaScript的进阶语言(应该可以这么说吧),我自认为啊,TypeScrip是JavaScript的规范性语言,更像C语言和C++语言,需要进行类型控制,而JavaScript则和matlab语言以及python语言比较像,比较自由,学习成本也相对低一点,不利于企业化管理,但是对于初学者自我开发入门门槛低。正好字节飞书前端训练营也有TypeScrip的讲解,于是想看看是不是和自己以前对TypeScrip的认识大致相同。

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

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

TS基础-基础类型

  1. boolean、number、string 2.undefined、null 3.any、unknown、void 4.never 5.数组类型 [] 6.元组类型tuple

TS基础-函数类型 定义:TS定义函数类型时要定义输入参数类型和输出类型徐金8656 输入参数︰参数支持可选参数和默认参数 输出参数︰输出可以自动推断,没有返回值时,默认为void类型 函数重载:名称相同但参数不同,可以通过重载支持多种类型

TS基础-interface 定义∶接口是为了定义对象类型 特点∶ -可选属性:? -只读属性:readonly-可以描述函数类型 -可以描述自定义属性 总结︰接口非常灵活duck typing

TS基础-类 定义:写法和JS差不多,增加了一些定义 特点︰ -增加了public、private、protected修饰符 -抽象类∶ -只能被继承,不能被实例化 -作为基类,抽象方法必须被子类实现

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

TS进阶-高级类型 1.联合类型l 2.交叉类型& 3.类型断言 4.类型别名(type vs interface) -定义:给类型起个别名 -相同点: 1.都可以定义对象或函数 2.都允许继承 -差异点︰

  1. interface是TS用来定义对象,type是用来定义别名方便使用;
  2. type可以定义基本类型,interface不行;
  3. interface可以合并重复声明,type不行;

TS进阶-泛型-基本使用 基本定义: 1.泛型的语法是◇里面写类型参数,一般用T表示; 2.使用时有两种方法指定类型: *.定义要使用的类型 *.通过TS类型推断,自动推导类型 3.泛型的作用是临时占位,之后通过传来的类型进行推导;

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

TS进阶-泛型工具类型-常用工具类型 Partial:将类型属性变为可选 Required:将类型属性变为必选 Readonly:将类型属性变为只读 Pick、Record...

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

课程总结 为什么学TS TS是JS的超集,增强了类型安全,提高生产力 TS基础 基础类型,函数类型,lnterface,Class类 TS进阶 高级类型,泛型,泛型工具类型 TS实战 声明文件,后端接口约束

个人小结,这次了解的一些typescript知识和我知道的大差不差,但是通过这堂课也让我知道了自己 还有许多要去学习的地方,前途路漫漫,前端路很长。