【发布时间】:2020-07-27 05:43:25
【问题描述】:
我的声明文件中有以下内容(包含在我的 [libs] 中):
export type EtlFieldNoIdxT = {
name: Name,
purpose: Purpose,
}
export type EtlFieldT = {
idx: number,
...EtlFieldNoIdxT
}
在我使用这些类型时有以下几点:
export const createEtlField = (
etlFields: { [Name]: EtlFieldT },
newField: EtlFieldNoIdxT,
) => {
if (etlFields === {}) {
throw new Error({
message: 'Cannot create a new etlField with an empty etlFields',
});
}
const field: EtlFieldT = {
idx: maxId(etlFields, 'idx') + 1,
...newField,
};
const subject: Name = Object.values(etlFields).find(
(f) => f.purpose === 'subject', // <<< f.purpose "missing in mixed" error
).name; // <<< .name "missing in mixed" error
return newEtlField(field, subject);
};
尽管对输入进行了注释,但流能否推断出Object.values 将因此返回的类型?
提前感谢您指出我的误解。
-E
【问题讨论】:
标签: flowtype