【发布时间】:2019-08-20 12:20:44
【问题描述】:
我可以将类型作为通用参数传递,但是当我使用包含类型参数的对象时,Flow 无法理解并且不会建议类型。相反,我得到一个错误。
export type TAction<T, R> = { +type: string, payload?: T, meta?: R };
function thisWorks(action: TAction<string, boolean>) {
const {
payload,
meta,
} = action;
// Flow knows payload is string and meta a boolean
}
function doesntWork(action: TAction<{ prop1: string, prop2: string }, boolean>) {
const {
payload: { prop1, prop2 },
meta,
} = action;
// Flow doesn't know the type of prop1, prop2 or meta
}
流错误是:
TAction[1].Flow(InferError) 中缺少属性prop1
【问题讨论】:
标签: javascript ecmascript-6 flowtype