Назад к вопросамКакой тип у
JuniorТеорияЧасто
Какой тип у s в строке return "paid: " + s.total;?
type OrderState =
| { kind: "new" }
| { kind: "paid"; total: number }
| { kind: "shipped"; track: string };
function statusText(s: OrderState): string {
switch (s.kind) {
case "paid":
return "paid: " + s.total;
}
return "other";
}{ kind: "paid"; total: number; }
- Ждать, что у
sостанется объявленный типOrderState:caseсравнивает признак, и внутри негоs— оплаченный вариант сtotal. - Путать
sсs.kind: проверка сужает весь объект, поэтому уsтип{ kind: "paid"; total: number; }, а не"paid".
- Какой тип у
sпослеswitch, в строкеreturn "other";? - Как сделать, чтобы tsc сообщал о состоянии, забытом в
switch?