1. Partial<T>
T menjadi opsional.interface User {
name: string;
age: number;
}
const updateUser = (user: User, updates: Partial<User>) => {
return { ...user, ...updates };
};
2. Required<T>
T menjadi wajib.interface User {
name?: string;
age?: number;
}
const user: Required<User> = { name: "John", age: 25 }; // Error jika ada properti yang tidak ada
3. Readonly<T>
T menjadi read-only (hanya bisa dibaca).interface User {
name: string;
age: number;
}
const user: Readonly<User> = { name: "John", age: 25 };
user.age = 30; // Error karena properti read-only
4. Pick<T, K extends keyof T>
T berdasarkan kunci K.interface User {
name: string;
age: number;
email: string;
}
const userName: Pick<User, 'name'> = { name: "John" }; // Memilih hanya properti 'name'
5. Omit<T, K extends keyof T>
T berdasarkan kunci K.interface User {
name: string;
age: number;
email: string;
}
const userWithoutEmail: Omit<User, 'email'> = { name: "John", age: 25 }; // Tanpa 'email'