Discriminated unions: la característica de TS que más uso en el trabajo
por Lucia Ruiz Alvarez··21 votos
Si no conoces los discriminated unions, para lo que estes haciendo y leete esto.
Ejemplo tipico: una respuesta de API que puede ser exito o error.
type Result<T> =
| { success: true; data: T }
| { success: false; error: string }
function handleResult(result: Result<User>) {
if (result.success) {
console.log(result.data.name) // TypeScript sabe que existe data
} else {
console.log(result.error) // TypeScript sabe que existe error
}
}
Elegante, seguro y sin casts. Es lo que mas echo de menos cuando vuelvo a JS puro.