function reverse<T>(arr: T[]): T[] {
return arr.map((_, i, a) => a[a.length - 1 - i]);
}
const nums = [1, 2, 3];
nums.reverse();
console.log(nums); 📥 Inputs:
nums = [1, 2, 3]
❓ ¿Cuál es el output?
Ingresa tu respuesta abajo
💡 Explicación
¡TRUCO! Aunque definimos una función reverse() genérica, NUNCA la usamos. La línea 'nums.reverse()' llama al método NATIVO de Array que MUTA el array original, no a nuestra función. TypeScript permite esto porque ambas tienen el mismo nombre pero la resolución de métodos favorece los métodos de instancia. Si quisiéramos usar nuestra función necesitaríamos llamar 'reverse(nums)' explícitamente. Este es un gotcha común al nombrar funciones igual que métodos nativos.
¿Qué imprime? 🤔