|Deep freeze de un objeto anidadoDifícil
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 15:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Deep freeze de un objeto anidado

Difícil30 pts
ruleRestricciones
  • radio_button_unchecked
    Usa Object.freeze()
  • radio_button_unchecked
    Usa recursión

Enunciado

Implementa la función deepFreeze<T extends object>(obj: T): T que congela profundamente un objeto: tanto el objeto raíz como todos los objetos anidados quedan inmutables.

Object.freeze() es superficial — solo congela el primer nivel. Tu función debe recorrer recursivamente todas las propiedades que sean objetos y congelarlas también.

La función debe retornar el mismo objeto congelado.

const config = deepFreeze({
  server: { host: "localhost", port: 3000 },
  db: { name: "mydb" }
});

// Intentar mutar cualquier nivel no debe tener efecto (en strict mode lanza TypeError)
Object.isFrozen(config);           // true
Object.isFrozen(config.server);    // true

Para verificar: la función retorna true si todos los niveles del objeto están congelados.

deepFreeze({ a: { b: { c: 1 } } });
// true (Object.isFrozen de todos los niveles)
Restriccionesexpand_more
  • Dificultad: Difícil
  • Completa todos los test cases para obtener los 30 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Deep freeze de un objeto anidado — Difícil | Coding Challenges · Coding Challenges