TS的诞生
TS是JS的超集,用于解决大型项目的代码复杂性
| TS | JS |
|---|---|
| 强类型,支持静态和动态类型 | 动态弱类型 |
| 编译时纠错 | 运行时发现错误 |
| 不允许改变变量数据类型 | 变量可以被赋值为不同类型 |
TS特性
- 类型安全
- 支持最新的ES特性
- 完善的工具链
基础类型
boolean number string
enum 枚举类型
any unknown void
- unknow类型的值不能赋值给any和unknow之外的类型变量,任何类型的值都可以赋值给unknow类型
- 无法确定变量的类型时可以使用any,允许赋值为任意类型
- void表示没有任何类型,用于定义没有返回值的函数
never
[] 数组类型
tuple 元组类型
TS函数类型 定义函数类型时需要定义输入参数类型和输出类型
- 输入参数支持可选参数和默认参数
- 输出参数可以自动推断,没有返回值时默认为void类型 函数重载:名称相同但参数不同,可以通过重载支持多种类型
interface 接口类型
- 可选属性: ?
- 只读属性: readonly
- 支持自定义属性
- 可以描述函数类型
类
- 修饰符:public private私有属性 protected仅支持在继承类调用,不支持在实例调用
- 抽象类 只能被继承,不能被实例化
- interface 约束类,使用implements关键字
TS进阶
联合类型 |
交叉类型 &
类型断言 as
泛型&类型别名
这一部分有点难,没有听懂,先挖个坑,后面学完了再来填坑把......
总结
TS一直接触比较少,但是目前很多招聘都需要掌握TS,本节课算是简单入个门,短短30min也很难把ts完全覆盖并深入每一个细节中,很多内容听起来也是云里雾里的,看来还是缺少相关实战经验,不过在掘金小册中发现了一个不错的资源,希望能够更深入的学习!