Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

163
Vistas
El tipo 'null' no se puede asignar al tipo 'T'

Tengo este método genérico.

 class Foo { public static bar<T>(x: T): T { ... if(x === null) return null; //<------- syntax error ... } } ... //somewhere const x = Foo.bar<number | null>(1);

me sale el error de sintaxis

TS2322: el tipo 'null' no se puede asignar al tipo 'T'.

Espero que esto se compile porque T podría ser null .

cual es la forma correcta de resolver este problema

over 4 years ago · Santiago Trujillo
5 Respuestas
Responde la pregunta

0

Debe declarar el tipo de devolución como null o desactivar los controles estrictos de Null en su strictNullChecks

 public static bar<T>(x: T): T | null

o puede escribir nulo as any por ejemplo

 return null as any;
over 4 years ago · Santiago Trujillo Denunciar

0

Propondría aquí sobrecargas de funciones para eliminar el caso nulo de los argumentos que no aceptan valores NULL. Considerar:

 class Foo { public static bar<T>(x: T): T // overload public static bar(x: null): null // overload public static bar<T>(x: T) { if (x === null) { return null; } else return x; } } const x = Foo.bar(1 as number); // x is number, never a null const y = Foo.bar(null); // its null const z = Foo.bar('s' as string | null); // its string | null

Entonces la implementación tiene tipo T | null , pero gracias a la sobrecarga de tipos que nunca son nulos, tenemos el tipo de retorno de T , por lo que sin la posibilidad nula.

over 4 years ago · Santiago Trujillo Denunciar

0

Desde la versión 3.9.5, TypeScript aplica strictNullChecks en numbers y strings , solo por nombrar algunos. Por ejemplo, el siguiente código generará un error durante la compilación:

 let x: number = null;

Para evitar este error tienes dos opciones:

  • Establezca strictNullChecks=false en tsconfig.json .
  • Declare su tipo de variable como any :
     let x: any = null;
over 4 years ago · Santiago Trujillo Denunciar

0

En lugar de null , asigne undefined a las variables.

over 4 years ago · Santiago Trujillo Denunciar

0

Puedes poner

 return null!;

funcionó para mí

over 4 years ago · Santiago Trujillo 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda