Javascript Flow.js从节点模块推断返回类型
我正在使用带有union返回类型的Flow.js,使用Javascript Flow.js从节点模块推断返回类型,javascript,types,frontend,flowtype,static-analysis,Javascript,Types,Frontend,Flowtype,Static Analysis,我正在使用带有union返回类型的Flow.js,使用declare module键入节点模块 declare module 'mymodule' { declare export default { myFunction: () => string | { errors: [] }, } } 但是当我在应用程序中使用它时 import myModule from 'mymodule' const { errors } = myModule.myFunction()
declare module
键入节点模块
declare module 'mymodule' {
declare export default {
myFunction: () => string | { errors: [] },
}
}
但是当我在应用程序中使用它时
import myModule from 'mymodule'
const { errors } = myModule.myFunction()
不知怎的,Flow.js说它应该是一个字符串,并且errors
在myFunction()
返回的值上不存在。换句话说,它推断它是一个字符串,即使它可能是一个有错误的对象
Flow.js是否在挖掘节点模块逻辑?我没想到会走那么远
我是否遗漏了一些明显的内容?Flow不知道myFunction
是否将返回字符串或对象--分配给myFunction
结果的变量类型是string{errors:[]}
。因此,Flow希望您将结果视为两者,并且在向Flow证明它确实是其中之一()之前,不允许您将变量用作对象或字符串