Debe devolver un valor
A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.Las palabras del propio compilador. Sin traducir — es la cadena que pegaste en el buscador.
La firma promete que algo vuelve y el cuerpo nunca lo entrega.
Reproducción
function f(): number {
}La compilación afirma que esto emite exactamente este código.
Por qué lo dice el compilador
Un tipo de retorno es una promesa a cada llamante, y este error es el compilador exigiéndotela antes de que alguien dependa de ella. El mensaje nombra los tres tipos a los que se permite significar «no vuelve nada», lo cual recuerda además que `void` y `undefined` no son lo mismo: `void` dice que quien llama debe ignorar el resultado, `undefined` dice que el resultado es un valor real que resulta ser undefined.
Arreglos
- 01
function f(): number { return 1 }Cumple la promesa.
- 02
function f(): void { }O deja de hacerla. `void` es el tipo de retorno correcto para una función que existe por sus efectos, y decirlo es mejor que devolver algo que nadie quiere.
Conclusión
Este error también salta cuando solo *algunas* rutas devuelven. Si te sorprende, busca la rama que se cae por el final.