Pick
Implement the built-in Pick<T, K> generic without using it.
Constructs a type by picking the set of properties K from T
For example:
tsinterfaceTodo {title : stringdescription : stringcompleted : boolean}typeCannot find name 'MyPick'. Did you mean 'Pick'?2552Cannot find name 'MyPick'. Did you mean 'Pick'?TodoPreview =< MyPick Todo , 'title' | 'completed'>consttodo :TodoPreview = {title : 'Clean room',completed : false,}
tsinterfaceTodo {title : stringdescription : stringcompleted : boolean}typeCannot find name 'MyPick'. Did you mean 'Pick'?2552Cannot find name 'MyPick'. Did you mean 'Pick'?TodoPreview =, 'title' | 'completed'> MyPick <Todo consttodo :TodoPreview = {title : 'Clean room',completed : false,}
Solution ✅
tsinterfaceTodo {title : stringdescription : stringcompleted : boolean}typeMyPick <T ,K extends keyofT > = { [P inK ] :T [P ] }typeTodoPreview =MyPick <Todo , 'title' | 'completed'>consttodo :TodoPreview = {title : 'Clean room',completed : false,}
tsinterfaceTodo {title : stringdescription : stringcompleted : boolean}typeMyPick <T ,K extends keyofT > = { [P inK ] :T [P ] }typeTodoPreview =MyPick <Todo , 'title' | 'completed'>consttodo :TodoPreview = {title : 'Clean room',completed : false,}