javascript - Flow.js 从节点模块推断返回类型
问题描述
我正在declare module
使用具有联合返回类型的 Flow.js 键入节点模块。
declare module 'mymodule' {
declare export default {
myFunction: () => string | { errors: [] },
}
}
但是当我在我的应用程序中使用它时
import myModule from 'mymodule'
const { errors } = myModule.myFunction()
不知何故 Flow.js 说它应该是一个字符串,并且errors
从myFunction()
. 换句话说,它推断它是一个字符串,即使它可能是一个带有errors
.
Flow.js 是否在挖掘节点模块逻辑?我没想到它走得那么远。
我在这里遗漏了一些明显的东西吗?
解决方案
Flow 不知道是否myFunction
会返回一个字符串或一个对象——分配给结果的变量类型myFunction
是string | { errors: [] }
. 因此,Flow 希望您将结果视为两者,并且不允许您将变量用作对象或字符串,直到您向 Flow 证明它确实是其中之一(Try Flow)。
推荐阅读
- ffmpeg - ffmpeg 平铺图像来自视频总图像计数
- java - 字符串中整数的总和?
- python - 多重继承python问题
- json - 使用JsonSlurper遍历列表时如何提取json内容而不丢失引号
- javascript - Angular 获取浏览器名称和版本
- java - 如何从另一个对象(Java)修改对象的私有 ArrayList 属性
- reactjs - 想用 useReducer 添加第二个 React reducer
- mysql - mysql 5.6 是否支持 [ with.. as() ] 语法?
- linux - 您如何通过相同的网关路由返回数据包进行端口转发?
- amazon-dynamodb - AmplifyDataStore DynamoDB 表的用途是什么?