javascript - Flow 中的返回类型检查
问题描述
Flow 应该检查返回类型吗?它似乎不适用于自定义类型 - 以下代码编译得很好:
function test1(value: number) : Distance {
if (value == 4) {
return "asd";
}
if (value == 5) {
return { a: 9 };
}
if (value == 6) {
return null;
}
return new Distance(value);
};
距离定义如下:
export class Distance {
value: string;
unit: string;
constructor(value: string, unit?: SDKConstants.MeasurementUnit) {
this.value = value;
this.unit = unit;
}
}
这在 Flow 上编译得很好。我注意到如果我将返回类型更改为数字,则会出现一些错误。
在这种情况下,有人可以解释 Flow 的局限性吗?我需要在配置中进行设置以使其更严格还是什么?
解决方案
问题是距离是在一个没有@flow
标签的单独文件中定义的。另一种方法是在所有文件中启用流检查(https://flow.org/en/docs/config/options/#toc-all-boolean)
推荐阅读
- ios - 处理 iOS 项目的消费者密钥和秘密
- google-bigquery - 无法将 BigQuery 旧版 SQL 转换为 HAVING LEFT(...) 的标准 SQL
- twilio - Twilio 不向哥伦比亚发送短信
- android - 需要在我的应用程序的滑动条内添加视图
- javascript - 使用 create-react-app 时如何获取 electron.js 文件的打字稿
- java - Leetcode 686 重复字符串匹配无法理解解释
- winapi - 桌面上图标的边距是否存在系统度量或参数?
- python - 如何编写一个将 xml 文件和整数值 X 作为参数并根据给定整数更新 xml 属性的函数
- python - 用列表中的项目替换子字符串
- javascript - 为什么这个 div 高度返回 0?