Javascript 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()

我正在使用带有union返回类型的Flow.js,使用
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证明它确实是其中之一()之前,不允许您将变量用作对象或字符串