①为什么要学习TS
TS是JS的超集,用于解决大型项目的代码复杂性 强类型,支持静态和动态类型 可以在编译期间发现并纠正错误 不允许改变变量的数据类型 TS带来了类型安全、下一代JS特性、完善工具链
②TS基础
基础类型:
boolean、number、string 枚举enum any、unknown、void never 数组类型 元组类型tuple 函数类型:
定义:TS定义函数类型时要定义输入参数类型和输出参数类型 输入参数:参数支持可选参数和默认参数 输出参数:输出可以自动推断,没有返回值时,默认返回void类型 函数重载:名称相同但参数不同,可以通过重载支持多种类型 interface:
定义:是为了定义对象类型 特点:可选属性: ?只读属性: readonly、可以描述函数类型、可以描述自定义属性 类:
定义:和JS写法差不多,增加了一些定义 特点: 增加了public、private、protected修饰符 抽象类: 只能被继承,不能被实例化 作为基类,抽象方法必须被子类实现 interface约束类,使用implements关键字 ③TS进阶
高级类型:
联合类型 | 交叉类型 & 类型断言:TS在执行时,会看当前执行变量类型的实际定义情况。在这个类型定义中,我们可以提前使用类型断言,也就是as操作符的方法告诉编译器,这个类型一定是有我们指定的类型。省去了相关类型推断,编译器不会进行一些类型错误的抛出。 类型别名(type VS interface) 定义:给类型起别名 相同点: 都可以定义对象或函数 都允许继承 差异点: interface是TS用来定义对象,type是用来起别名方便使用的 type可以定义基本类型,interface不行 interface可以合并重复声明,type不行 基本使用:
基本使用语法:在<>里面写类型参数,一般用T表示 2. 使用时有两种方法指定类型: 1. 定义要使用的类型 2. 通过TS类型推断,自动推导类型 泛型的作用是临时占位,之后通过传来的类型进行推导 基本操作符:
typeof:获取类型 keyof:获取所有键 in:遍历枚举类型 T[K]:索引访问 extends:泛型约束 常用工具类型:
Partial: 将类型属性变为可选 Required:将类型属性变为必选 Readonly:将类型属性变为只读 Pick、Record... ④TS实战
声明文件:
declare:三方库需要类型声明文件
.d.ts:声明文件定义
@types:三方库TS类型包
tsconfig.json:定义TS的配置
⑤总结
学习TypeScript的基础内容让我对JavaScript开发有了更深入的理解。TypeScript是静态类型的JavaScript超集,通过类型注解提供了更强大的类型检查和代码提示功能。学习TypeScript使我能够编写更可靠、易于维护的代码,并减少潜在的错误。我了解了基本的类型、接口、类、泛型和模块等概念,这些概念使得代码组织和扩展更加灵活。TypeScript还支持最新的ECMAScript功能,并提供了丰富的工具和社区支持。总而言之,学习TypeScript为我提供了更强大的开发工具和语言特性,使我能够更高效地构建和维护JavaScript应用程序。