Appearance
NonNullable
判断变量类型是否为 null | undefined
实现
ts
/**
* Exclude null and undefined from T
*/
type NonNullable<T> = T extends null | undefined ? never : T
栗子
ts
type Null1 = NonNullable<null> // never
type Null2 = NonNullable<undefined> // never
type Null3 = NonNullable<undefined | string> // string
type Null4 = NonNullable<undefined | string | number> // string | number
联合类型
对于联合类型 返回的是联合类型中的非 null 和 undefined 的子集
ts
type Null3 = NonNullable<undefined | string> // string
type Null4 = NonNullable<undefined | string | number> // string | number
type U1 = undefined | "name"
type Null5 = NonNullable<undefined | U1 | number> // "name" | number
type Null6 = NonNullable<undefined | PaginationRequest | number> // "PaginationRequest" | number