Cómo aprobar una entrevista de TypeScript: preguntas principales con ejemplos
TypeScript se ha consolidado firmemente como el estándar para el desarrollo empresarial en JavaScript. Si te estás preparando para una entrevista, es importante no solo conocer la sintaxis, sino también entender cómo funcionan los tipos, los genéricos y las utilidades. En este artículo, hemos desglosado las preguntas más frecuentes en entrevistas técnicas, con respuestas detalladas y ejemplos de código.
Este material será útil tanto para desarrolladores junior como para aquellos que quieran refrescar sus conocimientos antes de una reunión importante.
1. ¿Qué es TypeScript y por qué es necesario?
TypeScript es un superconjunto de JavaScript con tipado estricto que se compila a JS plano. El objetivo principal es añadir tipado estático, lo que permite:
- Detectar errores en tiempo de compilación, en lugar de en tiempo de ejecución.
- Mejorar la legibilidad y el mantenimiento del código.
- Obtener autocompletado y refactorización en el IDE.
Ejemplo:
// JavaScriptfunction add(a, b) { return a + b; // a y b pueden ser cualquier cosa}
// TypeScriptfunction add(a: number, b: number): number { return a + b; // error de compilación si se pasa un string}En una entrevista, es importante enfatizar que TypeScript no reemplaza a JavaScript, sino que lo complementa, haciendo el código más seguro.
2. Tipos básicos y su uso
TypeScript ofrece una amplia gama de tipos básicos. Las preguntas sobre este tema evalúan tu comprensión del sistema de tipos.
Enumera los tipos principales:
number,string,booleannull,undefinedany— desactiva la verificación de tipos (intenta evitarlo)void— para funciones que no devuelven nadanever— para funciones que nunca terminan (por ejemplo, lanzan una excepción)
Ejemplo con tipos unión:
type Status = 'active' | 'inactive' | 'pending';let userStatus: Status = 'active'; // solo uno de tres valoresA menudo preguntan sobre la diferencia entre interface y type. Respuesta: interface se puede extender (extends), mientras que type no. Para objetos, es preferible interface; para primitivos y uniones, es mejor type.
3. Genéricos: la base de la flexibilidad
Los genéricos permiten crear componentes que funcionan con diferentes tipos sin perder la seguridad de tipos. Esta es una de las preguntas más comunes.
Ejemplo de un genérico simple:
function identity<T>(arg: T): T { return arg;}const result = identity<string>('hello'); // tipo stringconst numberResult = identity(42); // tipo number (inferencia de tipos)Pregunta: ¿Cómo restringir un genérico?
Usa la palabra clave extends:
function getLength<T extends { length: number }>(arg: T): number { return arg.length;}getLength('hello'); // 5getLength([1,2,3]); // 3// getLength(123); // error: number no tiene lengthTambién te preguntarán sobre genéricos en interfaces:
interface ApiResponse<T> { data: T; status: number; error?: string;}const userResponse: ApiResponse<{ id: number; name: string }> = { data: { id: 1, name: 'Alice' }, status: 200};4. Tipos de utilidad
Las utilidades integradas de TypeScript simplifican las manipulaciones de tipos. Conocerlas es señal de un desarrollador experimentado.
Las 5 utilidades principales que deberías conocer:
Partial<T>— hace que todos los campos sean opcionales.Required<T>— hace que todos los campos sean obligatorios.Pick<T, K>— selecciona solo las claves especificadas.