Bru*_*res 11 javascript typescript ecmascript-6 flowtype
我正在为JavaScript应用程序建模.此应用程序的主要功能是使用REST API来配置和显示具有某些自定义输入类型的表单.我正在考虑使用TypeScript来利用类型和类.但经过一些谷歌搜索,我意识到我可以用JavaScript ES6 + Flow(和Babel)达到非常相似的结果.
我的问题是:
感谢帮助.
Nat*_*ote 24
免责声明:我在Flow团队工作.
总的来说,我相信Flow更注重健全,而Typescript则更注重易用性.因此,Flow将禁止可能导致运行时错误的事情,而在某些情况下,Typescript会确定某些行为不太可能导致错误,并且防止不太可能发生的错误不值得给开发人员带来不便.
这是一个具体的例子:
type Foo = {
x: string;
}
type Bar = {
x: 'foo';
}
const b: Bar = { x: 'foo' };
const f: Foo = b;
f.x = 'asdf';
Run Code Online (Sandbox Code Playgroud)
这段代码不正确 - b.x现在'asdf'即使类型说它应该是'foo'!
打字稿允许这样做.Flow抱怨混乱.
关于工具,打字稿获胜,落实(尽管我很难说,因为主要负责将Flow整合到核素中的人).设置过程很简单,一切正常.对于Flow,您需要安装和配置Babel(因为Flow不是编译器,您需要删除类型).对于Typescript,你需要为编辑器支持做的就是下载VSCode,你就完成了 - 你甚至不需要单独下载Typescript.对于Flow,如果要使用推荐的路径,则需要安装Atom + Nuclide并单独下载Flow.设置完成后,Flow编辑器支持工作得很好,但初始设置非常耗时.
我没有使用过足够的VSCode + Typescript来准确地比较它们,但我知道很多人对它非常满意,而且基于我对它的有限经验,它非常精致.功能集也更大 - 例如,Typescript支持自动重构.
Typescript的DefinitelyTyped(一组库的类型定义,所以你可以使用npm模块,同时保留类型安全)比Flow类似的flow-typed更大更成熟 - 尽管flow-typed正在增长.
| 归档时间: |
|
| 查看次数: |
3163 次 |
| 最近记录: |