在 TypeScript 中,内置工具类型 NonNullable 的主要用途是什么?
考察说明
考查对 TypeScript 内置工具类型 NonNullable 的理解,包括其定义、作用及使用场景。
回答思路
- 【回答框架 1】NonNullable<T> 是 TypeScript 内置的工具类型,用于从类型 T 中排除 null 和 undefined,返回剩余类型的联合。其实现为 type NonNullable<T> = T & {},通过交叉类型与空对象类型实现过滤。
- 【回答框架 2】该工具类型常用于处理可能为空的变量,如从 API 获取的数据或函数参数,确保后续操作在非空类型上进行,减少运行时空值检查。
- 【回答框架 3】使用示例:type A = NonNullable<string | null | undefined> 结果为 string;type B = NonNullable<number | null> 结果为 number。它不改变原始类型,只生成新类型。
- 【回答框架 4】在泛型约束或条件类型中,NonNullable 可用于提取非空部分,配合其他工具类型如 Partial、Required 等组合使用,增强类型安全性。
- 【回答框架 5】注意 NonNullable 只处理 null 和 undefined,不处理其他 falsy 值如 0 或空字符串,这些值仍保留在类型中。
- 【关键点 1】NonNullable<T> 排除 null 和 undefined,保留其他类型。
- 【关键点 2】实现基于交叉类型 T & {},利用空对象类型过滤空值。
- 【关键点 3】常用于处理可能为空的输入,提升类型安全。
- 【关键点 4】不处理其他 falsy 值,仅针对 null 和 undefined。
- 【易错点 1】误以为 NonNullable 会过滤所有 falsy 值,实际仅处理 null 和 undefined。
- 【易错点 2】在复杂联合类型中,可能忽略嵌套空值,需结合其他类型工具处理。