我有一个联合类型Entity
,它由两种不同的类型Door
和Handle
组成。属性旋转存在于一种子类型中,但不存在于另一种子类型中。这似乎意味着我无法对该属性进行优化,但是会收到错误Cannot get entity.rotation because property rotation is missing in
句柄[1].
我知道它不见了,这就是为什么我要检查它是否存在的原因。
type Door = {
id: number,
rotation: number
}
type Handle = {
id: number
}
type Entity = Handle | Door;
const foo = (entity: Entity): number => {
if (entity.rotation) {
return entity.rotation;
} else {
return 2;
}
}
由于entity.rotation
1中缺少属性rotation
,因此无法获得Handle
。
有没有一种方法可以改善类型中存在或不存在属性的位置?
答案 0 :(得分:3)
通过不将Handle声明为严格类型,您是在告诉Flow它可能包含旋转属性。
npm i webpack webpack-cli -g --save-dev