You can pretty easily define your own RecursivePartial
type, which will make all properties, included nested ones, optional:
type RecursivePartial<T> = {
[P in keyof T]?: RecursivePartial<T[P]>;
};
If you only want some of your properties to be partial, then you can use this with an intersection and Pick
:
type PartialExcept<T, K extends keyof T> = RecursivePartial<T> & Pick<T, K>;
That would make everything optional except for the keys specified in the K
parameter.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…