两个最重要的特性,类型系统、适用于任何规模
- 类型系统分为静态类型和动态类型
动态类型是指运行时才会进行类型检查,这种类型检查会在运行时导致报错
let foo = 1;
foo.split(' ');
// Uncaught TypeError: foo.split is not a function
// 运行时会报错(foo.split 不是一个函数),造成线上 bug
静态类型是指编译阶段就能确定每个变量的类型,这种语言的类型错误会导致语法错误。ts在运行前需要先编译为js,而编译阶段就会类型检查
let foo =