Flow中具有混合值的对象属性分配

时间:2018-10-22 01:52:59

标签: javascript flowtype

遇到流量问题,无法解决。

最好用代码描述:

   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;

因此,对键进行显式显示是可行的,但是对键进行参数化后就不能了。

有什么想法吗?

0 个答案:

没有答案