Typescript2.6与flow0.65. (最新的是2.7 和 0.68)
用法和可用性的差异
| 对比点 |
TypeScript |
Flow |
| 设计目的/指路明灯 |
通过代码语法正确性与生产力之间的平衡来识别程序中的错误 |
强制类型健全性/安全性 |
| IDE集成 |
顶尖的 |
粗略,必须要保存文件才能进行类型检查,有些IDE有实时运行的解决方案 |
| 类型检查速度(无需转换,主观,需要的标准 |
随着项目的扩展,速度不会降低很多 |
速度会随着附加的文件越多而降低  |
| 自动化 |
|
- 仅在使用时
- 感觉有点延迟(通常是延迟一秒或更久)
- 感觉不可靠(有时候根本不显示检查结果)
|
| 表达 |
极好的(自从TS@ 2.1) |
极好的 |
| 类型安全性 |
非常好(7/10) |
极好的(8/10) |
| 是否在调用期间指定通用参数 |
提供,例如 |
不提供 |
| 是否为类型定义指定通用参数 |
提供 |
提供 |
| 是否有库的类型 |
大量保持良好的类型 |
存在少数几种很不完整的类型 |
| 独特的功能 |
- 自动完成对象构造
- 在functions中声明
this(someFunction.bind()类型) - 大型库的类型
- 通过迭代,有更灵活类型映射
- 命名空间
|
- 变化
- 存在
*类型 - 当未声明的类型需要推断时,测试潜在的代码路径
$Diff <A, B>类型
|
| 类型扩展运算符 |
存在于整个过程中 |
存在于 > 0.42 |
| 插件 |
基本插件,具体包含哪些,现在还没列举出来 |
不提供 |
| 程序钩子 |
架构层准备好了,具体正在进行中 |
正在构建 |
| 文档和资源 |
非常好(包括书、视频、电子资源等) |
不完整,文档含糊不清 |
| 检查结果的质量 |
很好 |
擅长某些检查,但在其他情况下则含糊不清 |
| 透明度 |
大多公开透明 |
不太透明,闭门开发 |
| 商业支持 |
没有 |
没有 |
Typescript2.6与flow0.65. (最新的是2.7 和 0.68)
用法和可用性的差异
this(someFunction.bind()类型)*类型$Diff <A, B>类型