DeepPartial<T>:T[keyof T] extends Function ? T : { [P in keyof T]?: DeepPartial<T[P]> }
A deep partial type definition for services. We look into T to see whether its type definition contains
any methods. If it does, it's one of our services and therefore should not be partialized.
A deep partial type definition for services. We look into T to see whether its type definition contains any methods. If it does, it's one of our services and therefore should not be partialized.