TypeScript сделайте все свойства объекта, нулевого
// 1 level depth
type Nullable<T> = { [K in keyof T]: T[K] | null };
// deep by recurisve call
type DeepNullable<T> = {
[K in keyof T]: DeepNullable<T[K]> | null;
};
Jittery Jay