Hello everyone.
I'm working through type-challenges to dive deeper into TypeScript.
Today, I’d like to share what I learned about the Pick.
interface Todo { title: string description: string completed: boolean } type TodoPreview = MyPickconst todo: TodoPreview = { title: 'Clean room', completed: false, }
Implement the built-in Pick generic without using it.
Constructs a type by picking the set of properties K from T.
The challenge is to create your own version of the Pick utility type, which TypeScript provide as a standard utility.
interface Todo { title: string; description: string; completed: boolean; } type MyPick= { [k in U]: T[k]; }; type TodoPreview = MyPick ; const todo: TodoPreview = { title: "Clean room", completed: false, };
Let me explain, line by line.
On the first line, MyPick receives two arguments: T and U extends keyof T.
T:The base type that includes all properties.
U extends keyof T:Specifies the properties to include in the output type.
About keyof
About extends
On the second line,
It creates a new type which extracts only the specified properties from the given argument.
About Mapped Types such as [k in U]
As you can see below, a new type that excludes description from Todo is created by providing only title and completed to MyPick.
Happy Coding☀️
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3