JS代码编译过程
- 程序解析为AST(AST:抽象句法树,指去掉空白、注释和缩进用的制表符号或者空格之后的数据结构)
- 把AST编译成字节码(字节码:是一种包含执行程序,由一序列 op 代码/数据对组成的二进制文件)
- 运行时计算字节码
TS编译过程
- TS源码编译器解析成TS的AST
- 类型检查器检查AST(TS灵魂)
- TS AST编译为JS源码
- 程序解析为AST
- 把AST编译成字节码
- 运行时计算字节码
-
1-3由TSC(TS编译器)操作,4-6浏览器运行JS时候操作
-
2步中类型检查是TS能保证代码能按照预期运行的关键
-
1-2步定义使用的TS类型,第3步不会使用。即TS中定义的类型并不会出现在编译的JS中
type Persion={ name:string, age:number } const age:number=10;
编译后
const age = 10;
类型系统
TS的类型系统有两种:1.显式句法告诉编译器所有值得类型;2.系统自动推导出值得类型。
显式句法
const age:number=10; // age是一个数字