Typescript 怎样把嵌套的属性全部变为可选类型

type A = {
    name:string
}

type B = {
    age:number
}

type C = {
    aa:A,
    bb:B,
}

type c = Partial<C>

通过Partial<C>只能转换成这样

{
    aa?: { name: string },
    bb?: { age: number }
}

我想把嵌套的属性全部转为可选类型,应该怎么以做?

{
    aa?: { name?: string },
    bb?: { age?: number }
}
阅读 2.2k
1 个回答
type DeepPartial<T> = {
    [P in keyof T]?: DeepPartial<T[P]>;
};

type c = DeepPartial<C>;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进