Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

161
Views
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 answers
Answer question

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 Report

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 Report

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 Report

0

En lugar de null , asigne undefined a las variables.

over 4 years ago · Santiago Trujillo Report

0

Puedes poner

 return null!;

funcionó para mí

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!