• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

103
Vistas
Texto mecanografiado que no reconoce los cheques de la función

Tengo una función que valida la entrada.

 export const isValidString = (value: string | null | undefined): boolean => { return value != null && value.length > 0 && value.trim() != ""; }; const func = (input: string) =>{ // some code } const someFunction = (input : string | null | undefined) => { if(isValidString(input)){ func(input); //This is the line that is complaining } };

la llamada a la función arroja un error que no estoy seguro de por qué, ya que isValidString se asegura de que la entrada no esté indefinida. ¿Por qué?

 Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'.ts(2345)

Sin embargo, si solo hago

 if(input != null) func(input);

Todo funciona

almost 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cuando isValidString() solo devuelve un valor boolean , TypeScript no sabe que ha verificado que su tipo es una string ahora.

Por ejemplo, cuando pasa el cursor sobre la variable de input en este ejemplo de patio de juegos mecanografiado , puede ver que el tipo sigue siendo string | undefined | null ingrese la descripción de la imagen aquí

Para cambiar eso, su función debe ser un protector de tipo

 export const isValidString = (value: string | null | undefined): value is string => {

Tenga en cuenta que el tipo de retorno de la función ahora es el value is string

Cuando pasa el cursor sobre la input en el nuevo ejemplo , puede ver que el tipo ahora es string

almost 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda