TypeScriptタイプexcludenull include undefined

Sep 30 2020

による

https://www.typescriptlang.org/docs/handbook/utility-types.html#nonnullabletype

無効不可

Typeからnullおよびundefinedを除外して型を構築します。

例
type T0 = NonNullable<string | number | undefined>;
//    ^ = type T0 = string | number
type T1 = NonNullable<string[] | null | undefined>;
//    ^ = type T1 = string[]

そして私はそれが次のように定義されていることを読みました:

type NonNullable<T> = T extends null ? never : T

ここで、除外したいのですが、コードに必要なものをnull含めundefinedます。

どうしますか?ありがとう。

回答

1 Praveenkumar Oct 01 2020 at 04:02

実際には、既存のものNonNullableはとして定義されtype NonNullable<T> = T extends null | undefined ? never : T;ます。ただし、以下のような独自のユーティリティタイプを作成して使用することができます。

type NonNullButUndefined<T> = T extends null ? never : T;

// Usage
type T = NonNullButUndefined<string | null | undefined>;

使用法: