Javascript 如何使用流类型约束此函数的返回值?

Javascript 如何使用流类型约束此函数的返回值?,javascript,flowtype,Javascript,Flowtype,我想说“mySelector返回一个字符串”。我能用Flowtype做这个吗 import { createSelector } from 'reselect'; const mySelector = createSelector([anotherSelector], () => 'foo'); 如果您还没有这样做,那么在项目中获取重新选择的类型定义可能会有所帮助。您可以使用自动获取npm依赖项的类型定义。(Reselect确实随Typescript类型定义一起提供,Flow将来可能能

我想说“
mySelector
返回一个字符串”。我能用Flowtype做这个吗

import { createSelector } from 'reselect';

const mySelector = createSelector([anotherSelector], () => 'foo');

如果您还没有这样做,那么在项目中获取重新选择的类型定义可能会有所帮助。您可以使用自动获取npm依赖项的类型定义。(Reselect确实随Typescript类型定义一起提供,Flow将来可能能够读取Typescript定义;但AFAIK Flow此时无法读取Typescript定义。)

无论Flow是否正确地推断出
mySelector
的类型,显式地声明您期望的类型可能会很有用。您可以通过在
const
声明上放置类型注释来实现这一点:

constmyselector:()=>string=createSelector([anotherSelector],()=>foo');

这样的显式注释有助于确保您与类型检查器位于同一页面上。Flow将强制您在引用
mySelector
时指定的签名,除非Flow为
mySelector
推断出一个矛盾的类型,在这种情况下它将报告一个错误。

一旦您定义了“result function”(
()=>“foo”
)返回
字符串,它将自动推断出来