2.7 ES6 是静态类型的吗?

静态类型不是 ES6 的一部分。然而,下面的两种技术给 JavaScript 引入了静态类型的功能。类似的特性可能最终会被标准化。

  • 微软的 TypeScript : 基本上是 ES6 加上可选的类型注解。此时,如果这样做的话,编译成的 ES5 会丢掉类型信息。也可以使类型信息在运行时可用,这些信息用于类型反查和运行时类型检测。
  • Facebook Flow : 是一个 ECMAScript 6 的类型检测器,基于流分析( flow analysis )。因此,它仅给语言增加了可选的类型注解,以及推理类型和检查类型,并不会帮助将 ES6 代码编译成 ES5 代码。

静态类型的三个好处是:

  • 能够提前检测到某些错误,因为代码可以被静态分析(在开发阶段,不用执行代码)。因此,静态类型和测试、捕获不同类型错误是互补的。
  • 能够帮助 IDE 自动补全。

TypeScript 和 Flow 使用相同的注解。类型注解是可选的,这使得这种方式相当轻量。即便没有注解,通常也能够推断类型。因此,这种类型检查甚至对于完全没注解的代码也很有用,用作一种辅助的检查。

results matching ""

    No results matching ""