Hemos visto este patrón en muchas pull requests: un desarrollador se atasca con un tipo de dato complejo y recurre a la salida facil any para que el compilador deje de molestar. Funciona en el momento pero tiene un coste oculto. En nuestro flujo usamos un hook precommit con Husky que detecta any, pero cuando alguien usa --no-verify la comprobacion salta. Por eso la revison de codigo sigue siendo la linea de defensa mas importante.

El problema con any es que es una promesa al compilador para que mire hacia otro lado. Cuando declaras let myData: any estas desactivando las validaciones y puedes hacer literalmente cualquier operacion con la variable hasta que la aplicacion explote en tiempo de ejecucion. Un ejemplo tipico: let myData: any; myData = externalValue; console.log(myData.toFixed(2)); aqui el compilador no protestara pero si externalValue no tiene toFixed ocurrira un error en ejecucion.

unknown es la alternativa segura y inteligente. Al igual que any acepta cualquier valor, pero no permite su uso hasta que demuestres que tipo tiene. Es como una caja cerrada: sabes que hay algo dentro pero debes comprobarlo antes de usarlo. Ejemplo de uso seguro: let myData: unknown; myData = externalValue; // intento directo fallaria en tiempo de compilacion console.log(myData.toFixed(2)); // error del compilador Para trabajar con seguridad se utiliza el estrechamiento de tipo: if (typeof myData === typeof 0) { console.log((myData as number).toFixed(2)); } else if (typeof myData === typeof String()) { console.log((myData as string).toUpperCase()); }

Cambiar any por unknown fomenta codigo defensivo y obliga a manejar los casos concretos con comprobaciones como typeof, instanceof o validaciones personalizadas, lo que se traduce en menos bugs en produccion y mayor facilidad para refactorizar.

Comparacion rapida entre any y unknown

any tiene seguridad de tipos nula y permite llamar propiedades y metodos directamente, provocando errores que solo aparecen en tiempo de ejecucion. unknown obliga a estrechar el tipo antes de usar el valor, detectando muchos errores en compilacion y haciendo el codigo mas seguro y predecible.

La revison de codigo es un momento ideal para enseñar esta practica. Antes de comentar, entiende el por que: normalmente se usa any por rapidez. Explica el riesgo: any evita las comprobaciones y puede esconder fallos criticazos para produccion. Ofrece la solucion: propon reemplazar any por unknown y guia para añadir las comprobaciones necesarias. Asi no solo arreglas el problema inmediato sino que clarificas la intencion del codigo.

En Q2BSTUDIO aplicamos este tipo de buenas practicas en nuestros proyectos de aplicaciones a medida y software a medida para reducir riesgos y facilitar el mantenimiento. Somos especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y desarrollamos agentes IA y soluciones de ia para empresas que necesitan calidad y robustez.

Si tu equipo trabaja con APIs externas o con modelos de IA es comun recibir datos de tipo incierto. Usar unknown ayuda a validar y sanitizar esos valores antes de procesarlos, lo que es clave en entornos donde interaccionan microservicios, bases de datos y modelos de inteligencia artificial. En Q2BSTUDIO podemos ayudarte a incorporar estas practicas en tu pipeline de desarrollo y a mejorar la calidad de tus despliegues, desde ciberseguridad y pentesting hasta integracion con Power BI y servicios de Business Intelligence.

En resumen: evita any en nuevo codigo y prefiere unknown cuando el tipo real sea incierto. Fomenta revisiones de codigo constructivas que expliquen por que cambiarlo y como estrechar el tipo correctamente. Ese habito reduce bugs, hace el refactor mas seguro y mantiene la base de codigo saludable. Si buscas potenciar tus proyectos con buenas practicas y soluciones de inteligencia artificial visita nuestra pagina sobre inteligencia artificial y contacta con Q2BSTUDIO para construir software a medida, seguro y preparado para el futuro.