强类型 vs 弱类型
类型安全
- 强类型语言层面限制函数的实参类型必须与形参类型相同;
- 强类型有更强的类型约束,而弱类型中几乎没有什么约束;
- 强类型语言中不允许任意的隐式类型转换,而弱类型语言则允许任意的数据隐式类型转换;
- 变量类型允许随时改变的特点,不是强弱类型的差异;
静态类型和动态类型
类型检查
- 静态类型:一个变量声明时它的类型就是明确的,声明过后,它的类型就不允许被修改;
- 动态类型:在运行阶段才能明确变量类型,变量的类型也可以随时发生变化,也可以说动态类型的变量是没有类型的,变量中存放的值是有类型的;
- 各种语言类型参考下图
JavaScript 自由类型的问题
君子约定有隐患,强制要求有保障
- 异常需要等到运行时才能发现;
- 函数功能可能发生改变;
- 对象索引器的错误用法;
TypeScript 语言规范
错误更早暴露,在编译阶段就会显示出来;
强类型代码更智能,编码更准确;
重构更可靠;
减少了代码层面的不必要的类型判断;
JS 类型 => TS 类型
赋值兼容
动画✍️ 实现动画的几种方式
上一篇