一、TS基础概念
1、什么是TS
a.对比原理
TS 是JS的一个超集,在原有的基础上,添加了可选静态类型,基于类的面向对象编程
编写项目:更加利于架构的维护
自主检测:编译期间检测
类型检测:只是支持了动态与静态类型检测(仅仅是多了校验),并不是强类型语言
运行流程:是依赖编译的
复杂特性: 模块化,泛型,接口
2、TS基础类型与写法
基础类型:boolean string number array null undefined
元组:tuple 数组搭配多样产生元组
枚举:enum
any unknown(传参检查) void(返回检查) 三者的区别
any: 绕过所以检查 类型检查与编译筛查全部失效
unknown:绕过赋值检查 禁止更改传递
void:声明函数的返回值 没有返回的函数声明为void
(void never:永不返回 应用场景error函数)
object | Object | {} - 对象
object : 非原始对象 -- 只是个对象
Object:包含对象,以及Object.prototype上的属性,对实例的描述
{} : 空对象 没有成员的对象
3、接口 interface
对行为的抽象,具体的行为是由类实现的
4、交叉类型
5、断言
6、类型守卫 : in typeof instanceof
7、泛型 : 重用
8、装饰器 : decorator
类装饰器
属性装饰器 : 数据劫持
方法装饰器
总结:TS的原理解析
源码录入 => 扫描器扫描(识别内容生成数据流) => 解析器解析(生成语法树 AST) => 绑定器(node.Symbol) => 校验器(检查TS语法错误) => 发射器(根据每个节点的检查结果产出node翻译成js)