Introducción: Cuando una función no devuelve nada, ¿cuál es su tipo de retorno en TypeScript? Muchos desarrolladores piensan undefined pero la respuesta real es más matizada. Aquí lo explicamos con ejemplos claros y prácticos.
Funciones normales sin return: Si una función normal no devuelve nada TypeScript infiere su tipo de retorno como void. Ejemplo: function logMessage(message: string): void { console.log(message); } Incluso si no lo anotas TypeScript lo infiere automáticamente: function logMessage(message: string) { console.log(message); } // inferido como (message: string) => void A nivel de ejecución esa función técnicamente devuelve undefined pero TypeScript usa void para indicar que se debe ignorar el valor de retorno.
Funciones async sin return: Para funciones async el tipo es Promise<void>. Ejemplo: async function logMessage(message: string): Promise<void> { console.log(message); } O con arrow functions: const logMessage = async (message: string): Promise<void> => { console.log(message); }; Si no escribes la anotación TypeScript infiere Promise<void>.
Por qué no undefined: Puede resultar tentador escribir function logMessage(message: string): undefined { console.log(message); } pero esto producirá un error que indica que hace falta una instrucción return final y que el tipo de retorno no incluye undefined. Eso sucede porque undefined obliga a que la función retorne explicitamente undefined. Un ejemplo correcto con undefined sería: function doNothing(): undefined { return undefined; } En la mayoría de los casos lo que realmente quieres es void y no undefined.
Ejemplo en la vida real: Un utilitario de logging y una función asincrona que guarda datos: function logger(message: string): void { console.log([LOG]: , message); } async function saveAndLog(data: string): Promise<void> { await new Promise(res => setTimeout(res, 1000)); logger(Saved data:, data); } Aquí logger no retorna nada y por tanto es void, mientras que saveAndLog siendo async retorna Promise<void>.
Resumen práctico: void significa no me interesa el valor de retorno, undefined significa que la función debe devolver explicitamente undefined. Como práctica habitual prefiere void salvo que necesites forzar un return undefined.
Q2BSTUDIO y servicios relacionados: En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones a medida que combinan experiencia en inteligencia artificial, ciberseguridad, servicios cloud aws y azure y business intelligence. Si buscas crear una aplicación a medida ponte en contacto con nuestro equipo en desarrollo de aplicaciones y software multicanal y si te interesa potenciar tus soluciones con IA visita nuestra oferta de inteligencia artificial para empresas. Ofrecemos servicios en inteligencia de negocio incluyendo power bi, automatización de procesos, agentes IA, ciberseguridad y pentesting para garantizar que tus soluciones sean seguras y escalables.
Palabras clave: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.