React Hooks with TypeScript/Discriminated union reducer actions

Type reducer actions cleanly with a union.

Section: TypeScript with State and Refs

Discriminated union reducer actions

tsx
tsx
type Action =
  | { type: 'increment' }
  | { type: 'decrement' }
  | { type: 'reset'; payload: number };
Explanation

Discriminated unions give exhaustive reducer switch safety.

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 TypeScript with State and Refs
Generic useState type
Annotate nullable or union state explicitly.
OpenIn sheettsxsame section
Type a DOM ref
Specify the element type for refs.
OpenIn sheettsxsame section
Typed tuple return
Return readonly tuples for hooks that act like useState.
OpenIn sheettsx3 tag match
Generic async hook result type
Type reusable async hook data generically.
OpenIn sheettsx3 tag match