我想说“mySelector
返回一个字符串”。我可以使用Flowtype吗?
import { createSelector } from 'reselect';
const mySelector = createSelector([anotherSelector], () => 'foo');
答案 0 :(得分:1)
如果您还没有这样做,将reselect的类型定义引入项目可能会有所帮助。您可以使用flow-typed自动获取npm附加费用的类型定义。 (Reselect确实附带了Typescript类型定义,Flow可能会在将来读取Typescript定义;但AFAIK Flow目前无法读取Typescript定义。)
Flow是否正确推断mySelector
的类型,显式声明您期望的类型可能很有用。您可以通过在const
声明:
const mySelector: () => string = createSelector([anotherSelector], () => 'foo');
这样的显式注释可以帮助确保您与类型检查器在同一页面上。当您引用mySelector
时,Flow会强制执行您指定的签名,除非Flow为mySelector
推断出一种矛盾的类型,在这种情况下它会报告错误。