TypeScript Cheat Sheet/Restrict values with literal unions

Use exact string values for safer APIs.

Section: Primitive Types and Annotations

Restrict values with literal unions

typescript
typescript
type Theme = "light" | "dark" | "system";
const theme: Theme = "dark";
Explanation

Literal unions are ideal for config values, modes, and command flags.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Primitive Types and Annotations
Use a union type
Allow multiple possible primitive types.
OpenIn sheettypescriptsame section
Freeze literals with `as const`
Preserve readonly literal values for objects and arrays.
OpenIn sheettypescriptsame section
Annotate basic variables
Explicitly type strings, numbers, and booleans.
OpenIn sheettypescriptsame section
Type arrays
Declare arrays using `T[]` or `Array<T>`.
OpenIn sheettypescriptsame section
Annotate object shapes
Describe the expected properties of an object.
OpenIn sheettypescriptsame section
Rely on inference
Let TypeScript infer common variable types.
OpenIn sheettypescriptsame section