JavaScript - 动态弱类型 - 不会在变量的类型它们的调用者之间建立结构化的契约

before ES标准(静态类型检查),TS 是解决问题的最佳方案

静态类型检查器: Flow/Hegel(https://github.com/JSMonk/hegel)/Ternjs(2019停止更新-https://github.com/ternjs/tern)