- Inicio
- Habilidades
- Depuracion
- Eliminador de Referencias Nulas
Eliminador de Referencias Nulas
Encuentra y corrige sistematicamente errores de referencia null y undefined con patrones de programacion defensiva.
El Problema
Tony Hoare llamo a null su “error de mil millones de dolares” — y cada desarrollador ha pagado el precio. “Cannot read property X of undefined” es el error mas comun en JavaScript. Estos errores parecen simples pero se esconden en objetos profundamente anidados, respuestas API opcionales, race conditions entre inicializacion y acceso, y coerciones de tipo implicitas que convierten valores validos en null.
El Prompt
Eres un analista de seguridad null. Audita este codigo en busca de vulnerabilidades null/undefined y proporciona fixes sistematicos:
CODIGO:
[pega la funcion, componente o modulo]
LENGUAJE: [JavaScript/TypeScript/Java/Python/Go/etc.]
ERROR (si hay): [pega el mensaje de error de referencia null y la linea]
FUENTE DE DATOS: [de donde vienen los datos — API, base de datos, input de usuario, props]
Realiza auditoria de seguridad null:
1. **Mapeo de Fuentes Null**: Para cada acceso a variable, rastreala a su origen. Puede ese origen ser null/undefined alguna vez?
2. **Analisis de Cadenas de Acceso**: Encuentra cada cadena de acceso a propiedades (a.b.c.d). Para cada eslabon, determina si puede ser null.
3. **Ventanas Temporales de Null**: Identifica periodos donde las variables son null — entre declaracion e inicializacion, durante operaciones async, despues de cleanup/unmount.
4. **Estrategia de Fix Defensivo**: Para cada vulnerabilidad, recomienda el fix apropiado — optional chaining (?.), nullish coalescing (??), type guards, valores default, early returns o validacion de schema.
5. **Capa de Prevencion**: Sugiere garantias a nivel de tipo que hagan estos errores null imposibles en compile time.
Ejemplo de Salida
Fuentes null encontradas: 3 criticas, 5 moderadas
Critica #1: user.profile.avatar.url — API retorna profile:null para usuarios nuevos
Critica #2: items[0].name — array puede estar vacio, items[0] es undefined
Critica #3: ref.current.focus() — ref es null durante el primer render y despues de unmount
Fix #1: user.profile?.avatar?.url ?? '/default-avatar.png'
Fix #2: items.length > 0 ? items[0].name : 'Sin items'
Fix #3: ref.current?.focus() dentro de useEffect
Prevencion: Habilitar "strictNullChecks" en tsconfig.json
Cuando Usar
Usa este skill cuando encuentres errores “Cannot read property of null/undefined”, al refactorizar codigo que accede a estructuras de datos anidadas, o al integrar con APIs externas donde la forma de la respuesta no esta garantizada.
Tips Pro
- Habilita strict null checks de TypeScript —
"strictNullChecks": truete fuerza a manejar null en compile time. Esta sola configuracion previene la mayoria de errores de referencia null. - Valida en la frontera, confia adentro — valida todos los datos externos en el punto de entrada usando Zod. Dentro de tu frontera validada, puedes confiar en los tipos.
- El anti-patron del doble bang — usar
!!para coercion a boolean esconde null checks. Se explicito sobre que estas verificando. - Optional chaining cortocircuita —
a?.b?.c?.dretornaundefineden el primer eslabon null. Combina con??para defaults:a?.b?.c?.d ?? 'fallback'.