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
标签的单独文件中定义的。另一种方法是在所有文件中启用Flow检查(https://flow.org/en/docs/config/options/#toc-all-boolean)