MST
星途 面试题库

面试题:TypeScript条件类型分布式特性的基础应用

请解释TypeScript条件类型分布式特性在简单类型判断中的应用。比如给定两个类型A和B,使用条件类型分布式特性实现一个类型,如果A是字符串类型,则返回B,否则返回never。并说明分布式特性在这个过程中是如何起作用的。
22.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

在TypeScript中,条件类型分布式特性会在条件类型作用于联合类型时,自动将条件类型应用到联合类型的每个成员上。

实现代码如下:

type ConditionalType<A, B> = A extends string ? B : never;

假设 A 是联合类型,例如 A = string | number,当使用 ConditionalType<A, boolean> 时,分布式特性会将其拆分为 string extends string ? boolean : nevernumber extends string ? boolean : never,然后再将结果合并为 boolean | never,最终解析为 boolean

在上述定义的 ConditionalType 类型中,如果 A 是单一类型,当 Astring 类型时,就直接返回 B,否则返回 never。如果 A 是联合类型,分布式特性就会发挥作用,将条件类型分别应用到联合类型的每个成员上,最后合并结果。