如何扩展流的对象类型

时间:2017-11-10 02:48:17

标签: reactjs flowtype

我希望能够通过添加更多字段(props C)为包装器组件的组件扩展道具A.当我使用扩展操作符时,流程会出错。

type A = {a: string}
type C = {b: number} & A //{b: number, a:string} 
const c : C = {a: 'a', b: 1}
const {b, ...a} = c;
const a2 : A = a;

这会产生流量错误     6:const a2:A = a;                   ^其余的对象模式。

这是怎么回事?

https://flow.org/try/#0C4TwDgpgBAglC8UDeBDAXFAzsATgSwDsBzAXwChRIoBhBZAIwwIFcBbeiHEqAMligD0ApIygt2nADRR02fMW5kyAYwD2BbFGVQMtRKgwByFIemiAjOTUbgDaQDpHKbomUBuFes0oATDv6IKG5AA

2 个答案:

答案 0 :(得分:2)

以下是它的工作:

type A = {a: string}
type C = {b: number} & A //{b: number, a:string} 

const c : C = {a: 'a', b: 1}
const {b, a} = c;
const a2 : A = {a};

链接至:FLOW

答案 1 :(得分:0)

flow传播运算符like you can see in the issues存在很多问题 目前最好的解决方法是明确提取每个属性,就像Vivek Doshi说的那样。