问题标签 [flowtype]

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 投票
3 回答
8157 浏览

javascript - `mixed` 和 `any` 有什么区别?

文档说:

  • mixed:所有类型的“超类型”。任何类型都可以流入一个mixed.
  • any:“动态”类型。任何类型都可以流入any,反之亦然

什么情况下mixed不能any互换使用?

0 投票
1 回答
3361 浏览

flowtype - Facebook 流程中 module.system=haste 和 module.system=node 有什么区别

我从事一个使用 Facebook 流程的项目。在流程的高级配置中,[options] 标题有两个选择(module.system=haste 和 module.system=node)。

现在我想知道“急速”和“节点”有什么区别。

0 投票
1 回答
58 浏览

javascript - 为什么这段代码不使用带有 Flow 的函数子类型类型检查?

为什么这段代码不使用flow打字?

我认为我做的一切都是正确的,我仍然得到这个

0 投票
1 回答
477 浏览

javascript - Javascript:?操作员

我无法弄清楚这是做什么甚至是什么。有人会那么好心地指出我要研究什么吗?

它是 React Native 示例的一部分,也是 React Native 类定义的一部分。外部分为(略):

我认为这是对三元运算符的一些棘手使用。一个匿名函数。但?

来源:https ://facebook.github.io/react-native/docs/panresponder.html

0 投票
1 回答
536 浏览

javascript - 对象值中的流联合未按预期工作

我有以下代码。出于某种原因,Flow 拒绝了它。

我在代码中没有看到错误。但是,Flow 拒绝了它,理由如下:

/srv/webwallet/app/scripts/angularHelper.js:14:22,22:A 此类型与 /srv/webwallet/app/scripts/angularHelper.js:12:7,7:B 不兼容

发现 1 个错误

为什么代码不检查,如何检查?

0 投票
1 回答
636 浏览

javascript - Vim 错误格式多行字符串

我正在尝试将此错误输出解析为Flow. 在第一个错误中,真正重要的是第二个文件和行号,而不是第一个。我想告诉 vim 使用第二个文件条目。(所以在这种情况下,位置列表应该跳转到 source.js 的第 94 行,而不是第 20 行)

这是当前为 flow 定义的错误格式:它的工作原理是它使用第一个文件名而不是第二个文件名。

尝试的解决方案

我一直在尝试使用多行错误格式,但我不知道我在做什么。阅读后:help errorformat,似乎这样的事情应该可以工作,但它只是将整个错误加载到消息中,没有文件/行信息。它还使用第一个条目而不是第三个条目匹配第二个错误。

更新

感谢 lcd047,他指出我没有匹配正确的输出。Syntastic 将错误格式化如下,全部在一行中:

那么,新问题,我怎样才能匹配第二个位置而不是第一个?我想我宁愿忽略第一个位置。

更新答案 - 这有效:

0 投票
1 回答
1068 浏览

javascript - 带有流类型注释的混合

我在一个项目中使用 ES6 和Flow类型检查器。

假设我有两种类型 aliases,仅根据它们所期望的方法定义(如 Java 接口):

我将如何定义一个类FlyingCar来向类型检查器证明它既是 aCar又是 a Airplane?我正在使用 ECMAScript 6 类。

对于我怀疑的类型,它看起来像:

不过,我似乎无法将我想要的与类语法相协调,因为它似乎与 ES6 的类语法相关联。

0 投票
1 回答
944 浏览

javascript - Javascript:我怎样才能对最后没有“失败”块的承诺链进行 lint?

如何检查我的 Javascript 代码以识别promise.then().then().then()...最后没有失败块的承诺链 ( )?是否有任何现有工具(JSHint、JSLint、Flow 静态类型检查器、Typescript ......?)允许这样做?

坦率地说,这样做的动机是有时我只是忘记在我编写的代码中添加一个。然后,如果该代码中发生错误,它将默默地失败,并且它可能是调试的野兽。相反,能够在 lint-time 以与我可以使用 linting 识别变量名中的拼写错误相同的方式捕获这些错误将是更好的软件工程

例如:

0 投票
1 回答
176 浏览

javascript - 在流中声明函数签名

流文档有一种声明模块和类的方法,但我没有看到源代码之外的任何东西来声明类的方法。如果您想实现抽象基类之类的东西,这尤其有用。可以做到吗?我想要的是这样的:

whereSTare 已经在别处声明的类型(我还不想介绍类型变量)。我们可以使用解决方法:

即使我将子类设置为发出非空返回值,我仍然会收到有关空检查的流警告。

0 投票
1 回答
781 浏览

javascript - Facebook 流函数联合类型

我在玩 Facebook Flow 并想知道,为什么以下功能不进行类型检查?它显然使用了一个由“|”表示的联合类型。

检查员抱怨:

我知道当我像这样注释它时它会起作用:

但是为什么前面的注释会失败呢?坦率地说,到目前为止,我还没有在任何地方看到函数类型的联合类型,但是,我没有看到为什么它不应该被允许的理论上的原因。