Hi, the author here.<p>Some time ago I noticed that many of my TypeScript projects share similar types and I decided to extract them to common library. Since then I was joined by many awesome contributors.<p>ts-essentials is a nice addition to standard TypeScript library with deep*, recursive types like DeepPartial or DeepReadonly. Turns out, there are many edge cases while implementing those, just take a look: <a href="https://github.com/krzkaczor/ts-essentials/blob/master/lib/types.ts#L9" rel="nofollow">https://github.com/krzkaczor/ts-essentials/blob/master/lib/t...</a><p>I am here if you have any questions!