什么是 "类型优先 "的Flow架构?

问题描述 投票:1回答:1

A 博文 的博客中描述了一种叫做 "类型优先 "的Flow "重新架构"。据我所知,唯一的描述是博文中的这段话。

"... ...它利用文件边界的完整类型注释来进行更好的(更可并行和更少冗余)单独编译。"

有没有更详细的地方?具体来说,我想知道这些全注释是什么:对源代码和声明文件的新限制是什么?

例如,是否允许这样做?

import { func } from "./other-module";
export const myNumber = func(num1, num2);

在TypeScript中,这是个问题,因为TypeScript的类型为 myNumber 在不知道类型的情况下,是不可能解决的。func. Flow的 "类型优先 "重新架构后,会不会要求用户写。

import { func } from "./other-module";
export const myNumber: number = func(num1, num2);

这只是我的一个具体问题。我需要的是更多的信息和一个文档的链接,以解释重新架构的所有已知影响。

javascript flowtype
1个回答
1
投票

这听起来真的很华丽,也许它的本质是这样的。但实际上它很简单。在你的代码片段中,你是完全正确的,它几乎就是这个意思。

在你导出之前,你必须有一个明确定义的类型。

虽然不一定就在你导出之前。下面的方法也可以。

const TestComponent = (): React.Node => {};

export default TestComponent;

它增加了一点开销,但好处是。

  • 性能的提高,因为在进行健全性检查之前,flow不需要扫描所有的依赖关系。
  • 更可靠的代码,因为flow是在模块边界内运行的,所以不会出现深度嵌套的依赖关系导致的flow错误。

他们还发布了一篇新的博客文章,进一步阐述了这个问题,因为类型第一现在已经正式发布了。https:/medium.comflow-types-first-a-scalable-new-architecture-flow-3d8c7ba1d4eb。

© www.soinside.com 2019 - 2024. All rights reserved.