typescript - Typ 'null' nie je priraditeľný k typu 'T'
Mám túto generickú metódu
class Foo {
public static bar<T>(x: T): T {
...
if(x === null)
return null; //<------- syntax error
...
}
}
... //somewhere
const x = Foo.bar<number | null>(1);
Dostávam syntaktickú chybu
TS2322: Typ 'null' nie je priraditeľný k typu 'T'.
Očakávam, že sa toto zkompiluje, pretože T môže byť null.
aký je správny spôsob, ako vyriešiť tento problém
Odpoveď č. 1
Musíte deklarovať návratový typ ako null alebo vypnúť strictNullChecks vo svojom tsconfig
public static bar<T>(x: T): T | null
alebo môžete zadať null as any, napríklad
return null as any;
Odpoveď č. 2
Od verzie 3.9.5 TypeScript vynucuje strictNullChecks na číslach a reťazcoch, aby sme uviedli aspoň niekoľko príkladov. Napríklad nasledujúci kód vyvolá chybu počas kompilácie:
let x: number = null;
Aby ste sa tejto chybe vyhli, máte dve možnosti:
- Nastavte
strictNullChecks=falsevtsconfig.json. Deklarujte zjednotený typ
number | null:let x: number | null = null;
Odpoveď č. 3
Môžete dať
return null!;
Fungovalo to pre mňa
