Explica este código TypeScript
Dificultad: Intermedio
¿Cúal es la diferencia entre el bloque de código A y el bloque de código B?
//A
let y:any = "hola";
console.log(y.toUpperCase()) // HOLA
//B
let x:unknown = "hola";
console.log(x.toUpperCase()) // HOLA
- A.
No hay ninguna diferencia - B.
El tipo de dato unknown no existe en TypeScript - C.
El bloque de código B necesita una comprobación de tipo - D.
Ninguno de los anteriores
Respuesta en el primer comentario.
Top comments (1)
Respuesta:
✅ C.
El bloque de código B necesita una comprobación de tipo¿Cuál es la diferencia entre
anyyunknown?anyliteralmente significa cualquiera, osea que una variable de tipoanypuede almacenar cualquier valor, esto hace que TypeScript pierda un poco de su magia por eso se recomienda usarlo en migraciones de proyectos JavaScript a TypeScript o para la manipulación de librerías de terceros.unknownliteralmente significa desconocido, en escencia también puede recibir cualquier tipo de dato comoany, la diferencia es que a una variable de tipounknownno es posible acceder a sus metodos y propiedades, antes es necesario hacer una comprobación de tipos:Des esta manera, primero comprobamos que la variable es de tipo
stringantes de poder usar el métodotoUpperCase()que como sabemos es propio de las cadenas de texto.unknownpermite dar un poco más de seguridad queanycon la comprobación de tipos pero sin perder la capacidad de asignarle cualquier tipo de variable.