no-null-type
型注釈の位置では、| null は禁止されています。
存在しない場合は、undefined またはオプションの ? を使用してください。
チェック対象
| null (または null |) が以下の場所に出現している場合:
- 関数のパラメータ型注釈
- アロー関数のパラメータ型注釈
- 初期化子を持つ変数/プロパティ型注釈
理由
TypeScript には、「値がない」ことを表す方法が null と undefined の 2 つあります。
これらを混在させると、呼び出し箇所ごとに認知的な負担が生じます。
undefined は TypeScript における標準的な不在値です。
Partial<T>はnullではなくundefinedを使用します。- オプショナルチェイニング (
?.) と null 合体 (??) はundefinedのために設計されました。 JSON.stringifyはundefined値を省略しますが、nullはシリアライズします。nullが適切なのは、シリアライズ時のみです (下記の例外を参照)。
undefined のみを使用することで、コードベース内のすべての型が簡素化されます。
例
✗ 誤り
✓ 正しい
例外 — JSON変換境界
JSON.parseの直後では、データにnullが含まれる可能性があります。
境界でundefinedに正規化してから、下流に渡します。

