我需要在 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/