RequiredExcept<Original, Keys>
RequiredExcept<
Original,Keys> =Required<Omit<Original,Keys>> &Partial<Pick<Original,Keys>>
Creates a type where all keys become required except the specified ones which remain optional.
Type Parameters
Original: Original
The original object type.
Keys: Keys extends keyof Original
The keys that should remain optional.
Since
1.0.0
Example
type User = {
id?: string; // Optional
name?: string; // Optional
email?: string; // Optional
avatar?: string; // Optional
};
// RequiredExcept<User, "avatar">
// Results in: { id: string; name: string; email: string; avatar?: string; }
type UserRequired = RequiredExcept<User, "avatar">;
const user: UserRequired = {
id: "123", // Required (became required)
name: "John", // Required (became required)
email: "john@example.com", // Required (became required)
// avatar remains optional (kept as optional)
};