DeepPartial

Partial,它的作用是将属性全部变为可选.

type Partial<T> = { [P in keyof T]?: T[P] };

但是Partial无法把深层属性变成可选,只能处理外层属性。

想处理深层属性,就必须用到类型递归:

type DeepPartial<T> = {
    [U in keyof T]?: T[U] extends object
    ? DeepPartial<T[U]>
    : T[U]
};

type R2 = DeepPartial<Person>

最后更新于