Goal: Implement a generic `PartialByKeys<T, K>` which takes two type arguments `T` and `K`. `K` specifies the set of properties of `T` that should be set to optional. When `K` is not provided, it should make all properties optional just like the normal `Partial<T>`. Source challenge: https://github.com/type-challenges/type-challenges/tree/main/questions/02757-medium-partialbykeys Reference explanation: https://github.com/ghaiklor/type-challenges-solutions/blob/main/en/medium-partialbykeys.md