Доступ к союзам в 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

Как это можно сделать правильно?

Ура Томас

0 ответов

Другие вопросы по тегам