Skip to content

Simplify

将交叉类型或映射类型展开为单个扁平的对象类型。类型本身相同,但编辑器会显示为 { a: 1; b: 2 } 而不是 A & B

typescript
type Flat = Simplify<T>;

用法

Simplify<T>

交叉类型(&)若保持原样,会在编辑器提示中显示为 A & B,让人难以看清真实结构。用 Simplify 包裹后,会把最终属性展开成一个对象。?(可选)和 readonly 标记也会保留。

typescript
import type { Simplify } from 'es-toolkit/types';

type A = { name: string };
type B = { readonly age?: number };

// 不包裹时提示会显示为 'A & B'。
type Raw = A & B;

// Simplify 会将其展开为一个对象。?、readonly 标记也会保留。
type User = Simplify<A & B>;
// => { name: string; readonly age?: number }

类型参数

  • T:要展开的类型。

采用 MIT 许可证发布。