我具有以下功能;
const capitalize = (input) =>
(!(typeof input === 'undefined'))
? input
.split(' ')
.map(capitalizeWord)
.join(' ')
: undefined
这要么接受一个字符串,然后返回一个字符串,要么接受未定义,然后返回未定义,但是从不接受字符串,然后返回未定义,或者接受未定义,然后返回一个字符串。我的想法是类型应该像(void => void) & (string => string)
之类,但这根本不符合我的期望。 Flow担心我没有指定要大写输入是字符串还是未定义的内容,而要执行的操作实际上是将其分派到正确的类型。当我让flow仅推断类型时,它推断(void | string) => (string | void)
,它太宽泛了。正确的签名是什么?