¿Hay alguna manera de refinar una unión de tuplas correctamente en el flujo? Veo ejemplos de tipos de objetos en los documentos, pero parece que tiene una diferencia para las matrices y no veo ninguna pista para ese caso. Tengo este código simple:
/* @flow */ type A = ['a', string, string]; type B = ['b', number]; function process(param: A | B) { if (param[0] === 'a') { /* ERROR! Cannot get `param[2]` because `B` [1] only has 2 elements, so index 2 is out of bounds. [invalid-tuple-index] */ console.log(param[2]) } else { console.log(param[1]) } }Pero en mecanografiado distingue tipos correctamente
type A = ['a', string, string]; type B = ['b', number]; function process(param: A | B) { if (param[0] === 'a') { console.log(param[2]) // Works! param: A } else { console.log(param[1]) // param: B } }¡Gracias!