Frontend
¿Se puede confiar en los tipos de TypeScript en tiempo de ejecución? ¿Cómo garantizar la validación de los datos del backend?
¿Qué datos necesita el cliente en qué momento y qué API tendremos? ¿Qué puntos de entrada, qué esquemas de datos?
¿La vacante se cerró hace unos meses? ¿Por qué se volvió a abrir? ¿El desarrollador no pasó el período de prueba?
Tarea de codificación en vivo: arreglar un contador con setInterval en useEffect, que no funciona correctamente debido a un problema de cierre
En su currículum, menciona Java y PostgreSQL — cuéntenos sobre esa experiencia.
¿Cuáles son tus expectativas salariales?
Cuéntame sobre tu educación. ¿Cómo llegaste al campo de la tecnología de la información?
Cuéntame cómo utilizas las herramientas de IA en tu trabajo: ¿cuál es tu configuración, qué modelos, cuál es el flujo por etapas?
Tarea de codificación en vivo: tienes un pequeño componente de lista de tareas en JSX. Corrige todo lo que no te guste y explica por qué.
¿Qué opinas sobre el almacenamiento de estado con bibliotecas como React Query o SWR?
¿Para qué se realiza este proyecto? ¿En qué nicho de valor encaja, qué problema resuelve? ¿Existen competidores?
/** * Tarea 1: Genéricos y Seguridad de Tipo en Claves * Crea una función `getProperty` que tome un objeto y una clave. * Usa genéricos para asegurar que la función sea segura en tipos, y que la clave exista en el objeto. */ function getProperty<T extends Record<string, unknown>, K extends keyof T>(obj: T, key: K): T[K] { return obj[key]; } getProperty('str', 'toString') /** * Tarea 2: Dado múltiples declaraciones de interfaz Todo a continuación, explica qué sucede cuando están presentes en el mismo ámbito. * Discute cómo TypeScript las trata y completa el objeto `myTodo` para satisfacer los requisitos de la interfaz Todo fusionada. */ interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; }
¿Qué arquitectura elegir para escribir una biblioteca de UI?
¿Cómo se puede optimizar la búsqueda en el componente para no hacer una solicitud al servidor con cada pulsación de tecla?
Tarea 1 Tenemos un array de 10,000 objetos (por ejemplo, "Empleados" o "Productos"). Necesitamos implementar un componente para seleccionar un elemento que no "colgará" el navegador y será cómodo para el usuario. Requisitos a implementar: 1. Tipado de datos: Crear una interfaz Item con campos id: string, label: string y category: string. 2. Búsqueda (Input): Al ingresar texto, la lista debe filtrarse. 3. Trabajo con DOM y eventos (Navegación por teclado): * El usuario debe poder desplazarse por la lista con las flechas Arriba y Abajo. 4. Al presionar Enter, el elemento seleccionado se "confirma". 5. Nota importante: El elemento seleccionado por las flechas debe estar siempre en vista (programáticamente desplazar el contenedor si el cursor sale de los límites). 6. Optimización (Rendimiento): * Dado que hay muchos datos (10k), discutir o implementar una "renderización perezosa" simple (renderizar solo los primeros 20-30 elementos o usar IntersectionObserver). Salida del componente
¿Cómo almacenar correctamente la configuración en tiempo de ejecución en Nuxt 3? ¿En qué se diferencia la configuración pública de la privada?
interfaz FormState { valores: FormValues; errores: FormErrors; estaCargando: boolean; } const [estadoFormulario, setEstadoFormulario] = useState<FormState>({ valores: { email: '', password: '', }, errores: {}, estaCargando: false, });
¿Qué significa la palabra clave satisfies en TypeScript y para qué sirve?
¿Qué es el tipo de utilidad Awaited en TypeScript?
Tarea adicional: dado un código con la función MySync, que acepta un parámetro start (por defecto 0), lo imprime en la consola, usa Promise y se llama a sí misma recursivamente dentro de resolve, además de tener un setTimeout separado. Debe explicar qué sucederá aquí y qué se mostrará en la consola.