Что такое discriminated unions в TypeScript?

Middle
311 просмотров
AFK Offer AI

Discriminated union — это union тип где у каждого варианта есть общее поле-дискриминатор с уникальным literal типом. type Shape = { kind: "circle"; radius: number } | { kind: "square"; side: number }. В switch(shape.kind) TypeScript автоматически сужает тип в каждой ветке. Это паттерн без instanceof — работает с plain objects. Используется для: Result ({ok: true, data: T} | {ok: false, error: E}), state machines, команды/события.

Следующий вопрос

Как реализовать Retry паттерн в Node.js?