javascript - FlowType注释函数返回类型

标签 javascript flowtype

我需要在 FlowType 中注释一个返回对象的函数,我发现我有几个选项:

A) 导出的对象和函数的注释

const getForecastHourly:ActionType = (query:number):ActionType => ...

B) 仅对函数进行注释:

const getForecastHourly = (query:number):ActionType => ...

C) 仅导出对象的注释:

const getForecastHourly:ActionType  = (query:number) => ...

在我的代码中,我使用版本 A),但我想知道 B 或 C 是​​否可以等效,以及建议哪个版本以及原因。

// @flow
import {ActionType} from '../../types'

import 'isomorphic-fetch'
import * as api from '../../app/api'
import * as types from './forecastHourlyActionTypes'

const getForecastHourly:ActionType = (query:number):ActionType => ({
  type: types.GET_FORECAST_HOURLY,
  payload: new Promise((resolve, reject) => {
    fetch(api.forecast(query)).then(response => {
      resolve(response.json())
    })
  })
})

const setForecastHourlyActiveReportType:ActionType = (type:string):ActionType => ({
  type: types.SET_FORECAST_HOURLY_ACTIVE_REPORT_TYPE,
  payload: type
})

export { getForecastHourly, setForecastHourlyActiveReportType }

export type ActionType ={
  +type:string,
  +payload: Object
  }

最佳答案

我所做的只是注释函数本身

const getForecastHourly = (query: number): ActionType => ({ /* - */ });

因为 flow 了解 const,它知道该值不能更改,并且会自行计算出类型。

另一方面,如果您使用 let,那么我也会注释变量本身,因此 flow 可以检查是否重新分配该值(如果有)正确的类型。

关于javascript - FlowType注释函数返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46421425/

相关文章:

javascript - Phonegap/Cordova 社交共享 js shareViaFacebook 无法在 Windows Phone 中工作

javascript - 盒子几何边

javascript - 如何使用采用接口(interface)实现类作为参数的方法编写 Flow 接口(interface)?

javascript - 导入节点模块时出现流错误 "cant resolve module"

javascript - 使用 jQuery 显示 wordpress 帖子

javascript - JSON.stringify 看似缩写值

typescript - Redux 操作类型的字符串与常量

javascript - 参数之前或之后的流类型问号?

javascript - 特定 React Native 事件的流类型?

javascript - 在 mongo shell 中使用 printjson 进行 mongoDB 调试