DEV Community

Daniel Mezagini
Daniel Mezagini

Posted on

TypeScript - Asersiones de tipo

Tipo: Aserciones de Tipo


Cuando el dev conoce más que el compilador de TS es necesario un mecanismo que permita hacer una conversión de tipos de datos. En tal caso le estamos diciendo al compilador "confía en mi, sé lo que estoy haciendo".

Usa dos sintaxis:
<Angle Bracket> : dentro debemos definir un tipo
(variable as tipo)

Se parece al casting de otros lenguajes de programación de alto nivel. Pero este no tiene ningún impacto a nivel de ejecución.

Caso práctico:
Tenemos una variable de tipo any a la que le asignamos un texto.

let username: any;
username = 'anbreaker';
Enter fullscreen mode Exit fullscreen mode

Creamos otra variable con tipo string, a la que le asignamos el texto que contiene username . Pero para poder asignarlo debe cumplir una condición; que el texto sea mayor a 5 caracteres. ¿Cómo lo sacaremos?

Debido a que username es de tipo any no podemos usar la función .length. Así que debemos decirle a TS que trate la variable como si tuviera el tipo string. Esto se llama hacer una "Aserción de tipos"

let message: string =
  (<string>username).length > 5 ? `Welcome ${username}` : `username is too short`;
console.log('Message ->', message);
Enter fullscreen mode Exit fullscreen mode

La otra manera que pudo hacerse la aserción fue:
(username as string).length

Si utilizas Typescript con ReactJS asegurate de usar el tipo de asersión con as. Esto porque hay conflicto con JSX al usar la forma <tipo>variable

Estas notas fueron tomadas al realizar el curso de Platzi - Curso de Fundamentos de TypeScript

Top comments (0)