Доступ к союзам в JavaScript с потоком
Я использую типы объединения в javascript, используя поток в качестве средства проверки типов, но я не могу получить доступ к своим типам без ошибок, генерирующих поток:
// @flow
type ObjType1 = {
v1 : string,
v2 : number
}
type ObjType2 = {
v3 : string,
v4 : number
}
type ObjType3 = {
v5 : string,
v6 : ObjType1 | ObjType2
}
function test(p1 : ObjType3) {
let v7 : ObjType2 = (p1.v6 : ObjType2)
console.log(v7.v3);
}
Приведенный выше код сгенерирует следующие ошибки:
src/testUnion.js:21
21: let v7 : ObjType2 = (p1.v6 : ObjType2)
^^^^^^^^ property `v3`. Property not found in
21: let v7 : ObjType2 = (p1.v6 : ObjType2)
^^^^^ object type
src/testUnion.js:21
21: let v7 : ObjType2 = (p1.v6 : ObjType2)
^^^^^^^^ property `v4`. Property not found in
21: let v7 : ObjType2 = (p1.v6 : ObjType2)
^^^^^ object type
Как это можно сделать правильно?
Ура Томас