通过对 JS 这种弱类型语言弊端的分析,强类型的优势已经体现出来了。关于强类型的优势可以总结四个大点:
-
错误可以更早的暴露,也就是可以在编码阶段提前去消灭一大部分有可能会存在的类型异常。因为在编码阶段语言本身就会把这些类型异常暴露出来,所以就不用等到运行阶段再去查找这种错误。
-
代码更智能,编码更准确。这是一个开发者最容易感受到的,在开发过程中的智能提示可以大大提高开发的效率。
-
重构更牢靠。重构一般是指对我们的代码有破坏性的改造,例如删除对象当中的某个成员、或者是修改某个已经存在的成员名称。
-
减少不必要的类型判断。
function (a, b) { // 弱类型 if (typeof a !== 'number' || typeof b !== 'number') { throw new TypeError('arguments must be a number') } return a + b } function (a:number, b:number): number { // 强类型 return a + b }