我正在尝试正确键入其定义根据其属性之一的值而变化的对象。在下面的type
中使用常量可以很好地工作(即:用type: typeA
替换type: 1
可以修复错误),但是为了清楚起见,我想使用从共享{ {1}}。为什么流程对此不满意?
constants.js
答案 0 :(得分:0)
您需要将A和B声明为类型,然后使用typeof
/* @flow */
type A = 1;
type B = 2;
type pA = {
type: A,
vA: string,
};
type pB = {
type: B,
vB: string,
};
type p = pA | pB;
const getV = (proj): string => {
switch (proj.typeof) {
case "A": {
return proj.vA;
}
case "B": {
return proj.vB;
}
}
return '';
}