Too Long; Didn't Read
Mapped types are a way to avoid defining interfaces over and over. You can base the type you need on another interface and save yourself a lot of manual work. TypeScript Playground app is a playful tool where you can practice and improve your TypeScript skills. It looks scary at first, but it’s super intuitive: It will just expose the keys of any given interface/type through a union. It's a combination of two utilities: Omit, Readonly, Exclude, Extract, Extract and ReturnType.