问题标签 [flow-js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1696 浏览

javascript - 无法传播对象文字,因为 Flow 无法确定对象文字的类型

以下(简化)代码

产生错误:

Flow:无法传播对象文字,因为 Flow 无法确定对象文字 [1] 的类型。Category[2] 是不精确的,因此它可能包含与对象字面量 [1] 中的 ' 定义isSelected冲突的类型。isSelected尝试使Category[2] 精确。

我错过了什么?

0 投票
1 回答
35 浏览

reactjs - InitelliJ Idea、ReactApp 和 Flow:意外令牌

流显示错误,没有错误。例如:

错误

重新启动flow stopflow不会帮助它。

如果我关闭文件并重新打开它,错误就会消失,但在我继续编码时会出现其他错误。

我的流程版本:

有什么想法可以摆脱这些烦人的错误吗?

0 投票
1 回答
120 浏览

reactjs - React with Flow 类型中 onClick 事件的正确类型

我正在尝试创建一个具有 onClick 属性的 React 组件,并且我正在尝试为组件的 props 确定正确的类型签名。

我已经尝试了以下以及各种修改。

接受 onClick 道具的正确类型是什么?

0 投票
0 回答
54 浏览

javascript - 如何在定义了返回流类型的化简器上使用 Object.assign 和文字

我正在编写一个将与React.useReducer钩子一起使用的减速器。使用了 Flow,但 reducer 遇到了流错误,因为Object.assign({}, state ...has{}作为与SearchLocationStateType. 我发现的唯一解决方案是列出每个对象文字上的所有属性,这不是正确的方法。

我该如何解决这个问题?

0 投票
1 回答
22 浏览

flow-js - 如何组合flowjs类型定义

我如何结合以下类型定义,这样我就不必重复自己了?

尝试使用Interseptions但显然语法可能是错误的:

0 投票
1 回答
215 浏览

javascript - 带有flowjs的React useState中的“ReferenceError:未定义字符串”

我正在尝试用 flow 注释 useState(null) 但得到错误ReferenceError: string is not defined

我正在做类似的事情:

提前致谢

0 投票
0 回答
17 浏览

node.js - Flow 不考虑 flow-typed 的已安装定义

我的项目具有以下结构:

当我运行时yarn flow出现以下错误

但如果我运行, yarn flow-typed install express我会得到以下结果:

有什么问题?

0 投票
0 回答
16 浏览

javascript - 如何在flowjs中将方法指定为“非变异”?

考虑以下情况:

这给出了一个错误

试流链接

大概是因为对象被标记readonly并且流无法破译该函数是否会修改该对象。有没有办法描述“这个函数不会修改this,它是不可变的”?

0 投票
1 回答
139 浏览

javascript - 如何编写一个针对 null 或 undefined 进行测试的类型保护函数?

在将代码从流移动到 js 时,我具有以下功能:

可以很容易地将其移至打字稿(将混合更改为unknown

但是它的用法如下:

在流动时,%checks确保解析器理解该函数有助于类型缩小/保护。我将如何在打字稿中做到这一点?

编辑:是的,我知道这几乎总是可以使用空合并运算符来完成,尽管这是来自比该运算符更早的代码库。

0 投票
0 回答
116 浏览

visual-studio-code - 在 VSCode 多根工作区中为一个文件夹设置 Flowjs

要在 VSCode 中使用 Flowjs,您应该安装Flow Language Support扩展并通过添加禁用正常的 JS/TS 支持

到您项目的 VSCode settings.json 文件或完全禁用 JS/TS 功能。

我有一个多根工作区,其中包含使用 JS、TypeScript 或 FlowJS 的不同项目根,所以我不能完全禁用 JS/TS 的东西。但是通过文件夹的 vscode 设置禁用 JS 验证会给我错误/消息:

它不工作。Flow 的所有功能都不起作用,VSCode 抱怨这样的事情:

当我使用多根工作区时,如何让 FlowJS + VSCode 工作?

示例项目: