How to implement custom DeepPartial and DeepReadonly utility types in TypeScript? · ORA·tech