Typefully

Typescript: Tipos Condicionales

Avatar

Share

 • 

4 years ago

 • 

View on X

3 conceptos sobre tipos condicionales en @typescript 1️⃣ ¿Qué y cómo usarlos? 2️⃣ Distributividad 3️⃣ Inferencia de tipos 🧵 👇
Un tipo condicional permite seleccionar un tipo basado en una condición, como un bloque ternario en Javascript. 👉 Para crear un tipo condicional utilizarás genéricos y la palabra clave "extends". 🤯 La condición a evaluar se crea al revisar si el genérico extiendo un valor
🤓 La distribuitividad es una propiedad matemática de los tipos unión. ✅ Si el argumento pasado al valor genérico es una unión la condición se aplicará a cada parte de la unión 💡 Puedes considerar que la condición "Itera" sobre las partes de la unión
🤯 Es posible "extraer" un tipo y utilizarlo como variable dentro de un tipo condicional. ✅ La palabra clave `infer` permite crear una variable con el tipo obtenido para ser usada dentro de las rama verdadera de la condición. 👉 Es decir: Puedes obtener partes de un tipo!
Un ejemplo de esto es el siguiente tipo `Split` 1️⃣ Recibe un tipo genérico S 2️⃣ La condición es si S puede extender el patrón "Head Tail" (un espacio) 3️⃣ Usando `infer` y template literals `${}` se obtienen dos "variables" 4️⃣ Usa recursión para revisar la parte `Tail`
Puedes encontrar el código fuente de este ejemplo y editarlo si gustas directamente en el playground de typescript en el siguiente enlace 🔗 matiasfha.dev/ts-split
Usando tipos condicionales es posible crear diferentes tipos utilitarios, incluyendo los nativos ofrecidos por @typescript . 🔗 Por ejemplo, lo descrito en el siguiente tweet twitter.com/matiasfha/status/1518258481542823936
Avatar

Matías

@matiasfha

Frontend Engineer 🚀 Content creator 📝 Bilingual videos and articles. Building Soundscribe.app to make content creation easier. ES 🇨🇱 / EN 🇺🇸.