深入浅出 TypeScript
TypeScript带来了什么?
类型安全
下一代JS特性
完善的工具链
TypeScript vs JavaScript
TS基础有哪些
- boolean、number、string
- 枚举enum
- any、unknown、void
- never
- 数组类型[]
- 元祖类型tupte
函数类型
定义:TS定义函数类型时要定义输入参数类型和输出类型
输入参数:参数支持可选参数和默认参数
输出参数:输出可以自动推断,没有返回值时,默认为void类型
函数重载:名称相同但参数不同,可以通过重载支持多种类型
接口
- 定义:
为了定义对象类型 - 特点:
- 可选属性
- 只读属性
- 描述函数类型
- 描述自定义属性
类
- 定义:
写法和JS差不多,增加了一些定义 - 特点:
- 增加了public、private、protected 修饰符
- 抽象类:
只能被继承,不能被实例化
作为基类,抽象方法必须被子类实现
- interface 约束类,使用implements关键字
TS高阶-高级类型
- 联合类型
- 交叉类型 "&" 其他属性类型
- 类型断言,断言分为非空断言 和 确定具体值的断言
- 类型别名
- 定义:
给类型起个别名 - 与接口的相同点:
都可以定义对象或函数
都允许继承
- 不同点:
interface 是 TS 用来定义对象,type是用来定义别名方便使用
type 可以定义基本类型 , interface 不行
interface 可以合并重复声明,type不行
TS进阶-泛型
- 泛型创建可重用的组件
- 应用场景:定义一个功能,把传入的参数打印出来。传入string,则返回string
- 基本定义
- typeof : 获取类型
- keyof:获取所有健
- in : 遍历枚举类型
function print(arg:string):stirng { console.log(arg) return arg; } function print(arg:string | number ):string | number{ console.log(arg) return arg; } function print(arg:any):any{ console.log(arg) return arg } function print<T> (arg:T):T { console.log(arg) return arg }语法就是"<>"写参数类型,用T表示.
有两种:定义要使用的类型 + TS类型推断,自动推导类型
泛型的作用是临时占位
TS进阶-泛型工具类型-基础操作符
实战和工程向
声明文件
declare(类型环境):三方库需要类型声明文件
.d.ts:声明文件定义
@types:三方库TypeScript类型包
tsconfig.json:定义TypeScript的配置
实战-泛型约束后端接口类型
对初学者学习的建议
首先要了解基本概念,了解TypeScript与JavaScript之间的关系和差异。理解TypeScript是JavaScript它提供了静态类型、类、模块等增强特性。
然后是学习TypeScript的语法和类型系统。了解如何声明变量、定义函数、创建接口和类,以及使用类型注解和泛型等。这些知识将帮助您在编写代码时获得更好的类型检查和代码提示。
还要多使用编辑器和工具,利用这些工具提高开发效率。
最重要的是深入学习高级特性,掌握了基本的TypeScript语法和类型系统。首先要了解基本概念,了解TypeScript与JavaScript之间的关系和差异。理解TypeScript是JavaScript它提供了静态类型、类、模块等增强特性。
然后是学习TypeScript的语法和类型系统。了解如何声明变量、定义函数、创建接口和类,以及使用类型注解和泛型等。这些知识将帮助您在编写代码时获得更好的类型检查和代码提示。
还要多使用编辑器和工具,利用这些工具提高开发效率。
最重要的是深入学习高级特性,掌握了基本的TypeScript语法和类型系统。
- 定义: