RequiredPick
by default, the required makes everything required, but you can use this type to make a required pick of a type.
export type RequiredPick<T, key extends keyof T> = Required<Pick<T, key>> & T;
Installation
Usage
import { RequiredPick } from "@/types/RequiredPick";
type Order = { orderId?: number; customerName?: string; amount?: number; status: string; createdAt: string; }; type RequiredOrder = RequiredPick<Order, "orderId" | "amount">; // Equivalent to: type RequiredOrder = { orderId: number; amount: number; customerName?: string; status: string; createdAt: string; };