我有以下代码。由于某些原因,Flow拒绝了它。
class A {}
class B {}
type Intersection = (A | B);
var myMap: {
a: A;
b: B;
} = {
a: new A(),
b: new B()
}
var getter = function (name: string): () => Intersection {
return function (): Intersection {
return myMap[name];
}
}
var bGetter: () => B = getter("b");
我看不到代码中的错误。但是,Flow拒绝使用以下内容:
/srv/webwallet/app/scripts/angularHelper.js:14:22,22:A此类型是
与/srv/webwallet/app/scripts/angularHelper.js:12:7,7不兼容:
乙
找到1个错误
为什么不检查代码,以及如何检查代码?
最佳答案
你需要改变type Intersection = (A | B);
至type Intersection = (A & B);
“ |”运算符是不相交的联合。