我有以下代码。出于某种原因,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错误
为什么不检查代码,以及如何检查代码?
答案 0 :(得分:3)
您需要更改
type Intersection = (A | B);
到
type Intersection = (A & B);
" |"算子是一个不相交的联盟。