https://blog.bitsrc.io/typescript-challenges-implement-the-partialbykeys-t-k-utility-type-21b2780ef48d