The Pick type helps you create a new type by choosing only some properties from an existing type. It keeps your code simple and focused.
When you want to use only a few properties from a big object type.
When you want to send part of an object to a function or API.
When you want to create a smaller version of a type for forms or UI.
When you want to avoid repeating property types manually.
When you want to make your code safer by limiting properties.
Syntax
Typescript
Pick<Type, Keys>
Type is the original object type.
Keys is a list of property names you want to keep, written as a union of string literals.
Examples
This creates a new type with only name and age from Person.
Typescript
type Person = {
name: string;
age: number;
city: string;
};
type PersonNameAndAge = Pick<Person, 'name' | 'age'>;
This creates a type with only the model property from Car.
Typescript
type Car = {
make: string;
model: string;
year: number;
};
type CarModelOnly = Pick<Car, 'model'>;
Sample Program
This program shows how to use Pick to create a smaller type with only id and username from User. Then it creates an object of that smaller type and prints it.
Typescript
type User = {
id: number;
username: string;
email: string;
isAdmin: boolean;
};
// We want a type with only id and username
type UserPreview = Pick<User, 'id' | 'username'>;
const user: User = {
id: 1,
username: 'alice',
email: 'alice@example.com',
isAdmin: false
};
const preview: UserPreview = {
id: user.id,
username: user.username
};
console.log(preview);
OutputSuccess
Important Notes
You can only pick properties that exist in the original type.
Pick helps keep your types DRY (Don't Repeat Yourself).
Summary
Pick creates a new type by selecting specific properties from another type.
It helps you work with smaller, focused types.
Use it to make your code safer and easier to maintain.
Practice
(1/5)
1. What does the Pick type do in TypeScript?
easy
A. Removes properties from a type.
B. Creates a new type by selecting specific properties from an existing type.
C. Combines two types into one.
D. Makes all properties in a type optional.
Solution
Step 1: Understand the purpose of Pick
The Pick type is used to create a new type by choosing certain properties from an existing type.
Step 2: Compare with other options
Removing properties is done by Omit, combining types by intersection, and making properties optional by Partial.
Final Answer:
Creates a new type by selecting specific properties from an existing type. -> Option B
Quick Check:
Pick selects properties = A [OK]
Hint: Pick selects properties to create smaller types [OK]
Common Mistakes:
Confusing Pick with Omit
Thinking Pick makes properties optional
Mixing Pick with type intersections
2. Which of the following is the correct syntax to create a type PersonName with only name and age properties from Person using Pick?
easy
A. type PersonName = Pick;
B. type PersonName = Pick;
C. type PersonName = Pick;
D. type PersonName = Pick;
Solution
Step 1: Recall Pick syntax
Pick takes two parameters: the original type and a union of property names as string literals.
Step 2: Identify correct union syntax
The union of keys is written as 'name' | 'age' inside quotes and separated by |.
Final Answer:
type PersonName = Pick; -> Option A
Quick Check:
Pick syntax uses union of strings = B [OK]
Hint: Use quotes and | to list keys in Pick [OK]
Common Mistakes:
Omitting quotes around keys
Using array syntax instead of union
Passing keys as object instead of union
3. Given the type interface User { id: number; name: string; email: string; } and type UserPreview = Pick;, what is the type of userPreview in this code?
A. The interface Product is missing a 'cost' property.
B. Pick cannot be used with more than one key.
C. 'cost' is not a key of Product, causing a type error.
D. The syntax for Pick is incorrect; keys should be in an array.
Solution
Step 1: Check keys used in Pick
Pick requires keys to exist in the original type. 'cost' is not a key in Product.
Step 2: Understand TypeScript error
Using a non-existent key causes a type error because Pick cannot select keys that don't exist.
Final Answer:
'cost' is not a key of Product, causing a type error. -> Option C
Quick Check:
Pick keys must exist in type = C [OK]
Hint: Pick keys must match existing properties exactly [OK]
Common Mistakes:
Using keys not in the original type
Thinking Pick keys can be arrays
Assuming Pick works with any string keys
5. You have a type interface Employee { id: number; name: string; department: string; salary: number; }. You want to create a type EmployeeSummary that includes only id, name, and a new property departmentCode which is a string. How can you do this using Pick and adding the new property?
hard
A. type EmployeeSummary = Pick & { departmentCode: string };
B. type EmployeeSummary = Pick;
C. type EmployeeSummary = Omit & { departmentCode: string };
D. type EmployeeSummary = Partial<Employee> & { departmentCode: string };
Solution
Step 1: Use Pick to select existing keys
Pick 'id' and 'name' from Employee to get those properties only.
Step 2: Add new property with intersection
Use & to add a new property 'departmentCode' with type string to the picked type.
Final Answer:
type EmployeeSummary = Pick & { departmentCode: string }; -> Option A
Quick Check:
Pick keys + add new property with & = D [OK]
Hint: Combine Pick with & to add new properties [OK]
Common Mistakes:
Trying to Pick a non-existent property
Using Omit instead of Pick incorrectly
Using Partial which makes all properties optional
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.