What it Does

MakesĀ all optional properties required.

Syntax

type RequiredType = Required<OriginalType>;

Use Cases

Detailed Example

interface Config {
  apiUrl?: string;
  timeout?: number;
  retries?: number;
}

*// For production, all values required*
type ProductionConfig = Required<Config>;

const devConfig: Config = {
  apiUrl: "<http://localhost>"
  *// timeout and retries optional*
};

const prodConfig: ProductionConfig = {
  apiUrl: "<https://api.production.com>",
  timeout: 5000,
  retries: 3
  *// All three required - TypeScript error if missing*
};