¿Es 'false' un tipo de retorno válido en TypeScript?
Digamos que tengo una función que siempre devuelve falso:
function alwaysReturnsFalse(): boolean {
// some code
return false;
}
Me gustaría dejar eso claro usando false en lugar de boolean:
function alwaysReturnsFalse(): false {
// some code
return false;
}
TypeScript parece aceptar esto cuando lo intento, pero ¿es una mala práctica? No pude encontrar ningún ejemplo, ni nada en la documentación de TypeScript al respecto, así que supongo que probablemente no debería hacerlo. Nunca he oído que false sea un tipo. Pero creo que haría que el código fuera mucho más comprensible de un vistazo, especialmente para una función más compleja que devuelva, por ejemplo, una Promesa o false.
¡Gracias!
Respuesta #1
Sí, puedes definir el tipo de retorno de una función en TS como un único valor primitivo. Este es un ejemplo algo trivial, pero la funcionalidad básica de restringir variables a conjuntos específicos y finitos de valores te permite controlar cuidadosamente las expectativas de una pieza de funcionalidad. Este es un enfoque que es más simple y fácil de usar que los enums, así que es bueno estar familiarizado con él.
Un ejemplo de valores múltiples aclara más:
type chalkColor = "red" | "yellow" | "green" | "blue" ;
const getRandomColor = (): chalkColor => {
//Just returns a random color.
//You are assured it's one of only 4 possible values.
}
Respuesta #2
Parece que TypeScript acepta esto cuando lo intento, ¿pero es una mala práctica? - No, no hay nada de malo en pasar el valor primitivo false como tipo de retorno, pero solo estoy pensando si la función todavía es necesaria si siempre va a devolver false.
¿No podemos usar directamente false en lugar de llamar a esta función?
function alwaysReturnsFalse(): false {
return false;
}
const res = alwaysReturnsFalse();
O
const res = false;
¿Cuál solución prefieres? Creo que la segunda, ¿verdad? Ya que es más compatible/menos código.
