Anuncios

Bienvenidos sean a este post, seguimos con los tipos basicos.

Anuncios

Este es otro tipo basico agregado por typescript pero es muy especial porque es similar a any con la diferencia que este podemos considerarlo como type-safe (tipo seguro). Cuando una variable es marcada como unknown esta puede recibir cualquier tipo de dato pero no puede sera asignada a otro tipo sin el casteo correcto. Para entender estas diferencias vamos a ver un ejemplo, analicemos el siguiente codigo:

let a: any = "prueba";
let numero: number = 2;
numero = a;
console.log(numero);
Anuncios

Primero definimos una variable de tipo any con un valor, lo siguiente es hacer lo mismo pero con un tipo number, le asignamos el valor de la primera a la segunda y lo mostramos, compilemos y veamos su salida:

$ node desconocido.js
prueba
$
Anuncios

Hasta aca funciono correctamente, tomemos el codigo anterior y vamos a modificarlo de la siguiente manera:

let u: unknown  = "prueba";
u = 1;
let numero: number;
numero = u;
console.log(numero);
Anuncios

Definimos una variable de tipo unknown con un valor, luego se lo modificamos para despues declarar una variable de tipo number y a esta le asignaremos el valor de la variable unknown para finalmente mostrarlo, veamos que sucede al compilarlo:

$ tsc desconocido.ts
desconocido.ts:4:1 - error TS2322: Type 'unknown' is not assignable to type 'number'.

4 numero = u;
~~~~~~


Found 1 error in desconocido.ts:4

$
Anuncios

Como mencionamos anteriormente las variables de tipo unknown no pueden ser asignadas a otro tipos de datos sin el casteo correcto pero a que nos referimos con esto? para entenderlo vamos a tomar la siguiente linea:

numero = u;
Anuncios

Lo modificaremos de la siguiente manera:

numero = <number> u;
Anuncios

Con esto nos referimos a un casteo, es decir especificar de manera correcta cual es el tipo de dato que debemos usar para asignarlo, inclusive ahi pueden pasar el tipo any pero la buena practica recomienda asignar el tipo correcto, si lo compilan tendremos la siguiente salida:

$ node desconocido.js
1
$
Anuncios

Observen que al igual que any podemos modificar el tipo de dato por cualquiera que necesitemos, pero sin el casteo no pudimos asignarlo a otra variable y ahora con el casteo si pudimos hacer esta asignacion. Por esta razon se lo denominna como type-safe para evitar los inconvenientes que podian surgir con el uso excesivo de any, por esta razon unknown es una mejor alternativa a any.

Anuncios

En resumen, hoy hemos visto unknown, que es, para que sirve, como se usa, sus pros y sus contras, y como podemos solucionar un inconveniente que nos surge con su uso, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50