遇到流量问题,无法解决。
最好用代码描述:
type Mytype = {
propA?: string,
propB?: number,
};
type myTypeProps = $Keys<typeof MyType>;
const source : Mytype = {
propA: 'hello',
propB: 10,
};
const myFunc = (props: Array<myTypeProps>, ): Mytype => {
const dest:Mytype = {};
props.forEach(propType => {
dest[propType] = source[propType];
//Flow Error because of
//type mismatch: string cannot be assigned to number
});
return dest;
}
现在,尽管将props数组指定为myTypeProps流的类型,但似乎无法识别出以下事实:如果我使用相同的键,则该类型应该已经匹配了?
或者,以下方法也可以正常工作:
const dest:Mytype = {};
dest['propA'] = source['propA'];
dest['propB'] = source['propB'];
return dest;
因此,对键进行显式显示是可行的,但是对键进行参数化后就不能了。
有什么想法吗?