ts 分发

在 TypeScript 中,"分发"(distributive)是指在条件类型中的联合类型上自动进行类型推断的机制。当使用条件类型操作联合类型时,TypeScript 会自动将联合类型中的每个成员都应用该条件类型。

下面是一个示例:

type Box<T> = {
  value: T;
};

type Boxify<T> = T extends any ? Box<T> : never;

type StringBox = Boxify<string>;
// 等价于
// type StringBox = Box;

type NumberBox = Boxify<number>;
// 等价于
// type NumberBox = Box;

type AnyBox = Boxify<any>;
// 等价于
// type AnyBox = Box;

type UnionBox = Boxify<string | number>;
// 等价于
// type UnionBox = Box | Box;

在上面的例子中,我们定义了一个泛型类型 Box 表示一个盒子,它包含一个值 value。然后,我们定义了一个条件类型 Boxify,它通过判断泛型 T 是否为任意类型来决定是否对其进行包装为 Box,否则为 never

在使用 Boxify 进行类型转换时,TypeScript 会自动将联合类型中的每个成员应用该条件类型。例如,StringBox 将会推断为 BoxNumberBox 将会推断为 BoxAnyBox 将会推断为 BoxUnionBox 将会推断为 Box | Box

你可能感兴趣的:(typescript,前端)