TypeScript
为什么要学习?
- 1.强类型(类型安全)
- 2.ts是js的扩展 ts可以编写成js(相当于js++)
- 3.ts在编译时就可发现问题
- 4.适合大型项目,复杂代码编写
语言特性
TypeScript 是一种给 JavaScript 添加特性的语言扩展。增加的功能包括:
- 类型批注和编译时类型检查
- 类型推断
- 类型擦除
- 接口
- 枚举
- Mixin
- 泛型编程
- 名字空间
- 元组
- Await
以下功能是从 ECMA 2015 反向移植而来:
- 类
- 模块
- lambda 函数的箭头语法
- 可选参数以及默认参数
JavaScript 与 TypeScript 的区别
TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。
TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。
第一个实例
const hello : string = "Hello World!" console.log(hello)
基本类型
- 1.boolean number string
- 2.enum
- 3.any unknown void
- 4.never
- 5.数组类型[ ]
- 6.元组类型tuple
函数类型(要定义输入输出参数的类型) interface:定义对象的类型
特点:
- 1.可选属性
- 2.只读属性
- 3.可以描述函数类型
- 4.可以描述自定义属性
类: 增加public(默认) private protected
抽象类:只继承 不能实例 interface约束类----implements关键字
进阶
- 1.联合类型 |
- 2.交叉类型 &
- 3.类型断言
- 4.类型别名(type VS interface)
泛型
function print<T>(arg T):T{}
泛型:用来临时占位 之后通过传来的类型进行类型推导
使用时两种方法指定类型:
- 定义要使用的类型
- 通过ts类型推断,自动推导类型
基本操作符
- typeof:获取类型
- keyof:获取所有键
- in:遍历枚举类型
- T[k]:索引访问
- extends:泛型约束