TypeScript VS JavaScript
TS包含JS
| TS | JS |
|---|
| JS的超集,用于解决大型项目的代码复杂性 | 一种脚本语言,用于创建动态网页 |
| 强类型,支持静态和动态类型 | 动态弱类型语言 |
| 可以在编译时发现并纠正错误 | 只能在运行时发现错误 |
| 不允许改变变量的数据类型 | 变量可以被赋值成不同数据类型 |
| TS优势:(不仅仅是一门语言,更是生产力工具) | |
类型安全
下一代JS特性
完善的工具链
学习地址:
Awesome Typescript:TS开源教程及应用
ByteTech:TS&React:React+TS开发模式介绍
Typescript Playground:ts到js在线编译
TS基础-基础类型
1.boolean,number,string
2.枚举enum
3.any,unknow,void
4.never
5.数组类型【】
6.元组类型
interface
定义:接口是为了定义对象类型
类
定义:写法跟js差不多
增加了public,private,protectef等修饰符
抽象类:只能被继承,不能实例化。做为基类,抽象方法必须被子类实现
TS进阶
1,联合类型 |
2,交叉类型 &
3,类型断言
4,类型别名type VS interface
定义:给类型起别名
interface:接口
type:定义
泛型
组件不仅支持当前数据类型,也支持未来的数据类型
语法:<>里面写类型参数,一般用T表示
有两种指定类型:定义要使用的类型/通过TS类型推断,自动推到的类型
泛型的作用是临时站位,之后通过传来的类型推导
泛型工具类型-基本操作符
typeof:获取类型
keyof:获取所有键
in: 遍历枚举类型
T【k】:索引访问
extends:泛型约束
TypeScript实战
声明文件
declare:三方库需要声明文件
.d.ts:声明文件定义
@types:三方库TS类型包
tsconfig.json:定义TS的配置
泛型约束后端接口类型
可能出现的错误情况:
路径错误
参数错误