【发布时间】:2019-09-05 19:42:12
【问题描述】:
我正在尝试正确键入一个对象,该对象的定义会根据其属性之一的值而改变。在下面使用type 的常量可以正常工作(即:用type: 1 替换type: typeA 可以修复错误),但为了代码库的清晰性,我想使用从共享constants.js 导入的常量。为什么flow对此不满意?
const typeA = 1;
const typeB = 2;
type pA = {
type: typeA,
// ^ Cannot use number as a type because number is a value. To get the type of a value use `typeof`.
vA: string,
};
type pB = {
type: typeB,
vB: string,
};
type p = pA | pB;
const getV = (proj): string => {
switch (proj.type) {
case typeA: {
return proj.vA;
}
case typeB: {
return proj.vB;
}
}
return '';
}
【问题讨论】:
标签: javascript flowtype