1. ホーム
  2. typescript

[解決済み] 型 'null' は型 'T' に割り当てられません。

2023-06-07 03:44:43

質問

このような汎用的なメソッドを持っています。

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


... //somewhere
const x = Foo.bar<number | null>(1);

シンタックスエラーが発生します

TS2322です。タイプ 'null' はタイプ 'T' に割り当てられません。

私はこれがコンパイルされることを期待しています なぜなら Tnull .

この問題を解決するための適切な方法は何でしょうか?

どのように解決するのですか?

戻り値の型を null として宣言するか、あるいは strictNullChecks をオフにします。

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

または、NULLを入力することもできます。 as any など。

 return null as any;