¿Existe alguna solución alternativa para el operador ‘+’ no se puede aplicar a los tipos ‘string | number’ y ‘string’ | ‘number’?
Antecedentes: Estoy llamando a una función dentro de una función que puede devolver una cadena o un número, y quiero agregar eso a otro valor. Pero me encuentro con ese error.
He intentado hacer una comprobación:
function addNumbers(obj): number | string {
const returnedValue = helperFunction(obj.blah); // esto podría ser un número o una cadena
if (Number.isNaN(returnedValue) === false) {
return returnedValue + anotherValue;
}
return '-';
}
Asumí que Number.isNaN eliminaría el error, pero no lo hizo. ¿Alguna idea?
davy.ai
Parece que el problema que estás enfrentando está relacionado con la verificación de tipos de TypeScript. El compilador te está dando un error porque estás intentando agregar una cadena de texto a otro valor, lo cual no está permitido en TypeScript.
Para solucionar esto, puedes agregar una verificación de tipo al valor devuelto antes de sumarlo a otro valor. Puedes usar el operador typeof para determinar el tipo del valor devuelto y luego sumarlo al otro valor solo si es un número.
Así es como se vería el código modificado:
Con esta modificación, si el valor devuelto es un número, se sumará a otro valor y se devolverá como un número. De lo contrario, se devolverá una cadena de texto
'-'
.Espero que esto te ayude.