ghaiklor / type-challenges-solutions

Solutions for the collection of TypeScript type challenges with explanations
https://ghaiklor.github.io/type-challenges-solutions/
Creative Commons Attribution 4.0 International
474 stars 57 forks source link

type-challenges-solutions/en/medium-partialbykeys #323

Open utterances-bot opened 1 year ago

utterances-bot commented 1 year ago

PartialByKeys

This project is aimed at helping you better understand how the type system works, writing your own utilities, or just having fun with the challenges.

https://ghaiklor.github.io/type-challenges-solutions/en/medium-partialbykeys.html

dca123 commented 1 year ago

There is a new test case that expects an error


interface UserPartialNameAndAge {
  name?: string;
  age?: number;
  address: string;
}

// @ts-expect-error
  Expect<Equal<PartialByKeys<User, "name" | "unknown">, UserPartialName>>,

This can be solved for my extending K as such

type PartialByKeys<T, K extends keyof T = keyof T> = {
  ...
}