首页 > 解决方案 > 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 的局限性吗?我需要在配置中进行设置以使其更严格还是什么?

标签: javascriptreact-nativeflowtype

解决方案


问题是距离是在一个没有@flow标签的单独文件中定义的。另一种方法是在所有文件中启用流检查(https://flow.org/en/docs/config/options/#toc-all-boolean


推荐阅读