У меня есть простая игра со статусом, которая говорит мне, идет ли игра или нет. Как тип gameStatus = "running" | "выиграл"; Если в моей основной функции я проверяю, если статус «выигран», а затем вернуть, то TypeScript должным образом Infert, что после, статус может быть только «запущен». Но если я вызову функцию, изменяя статус, TypeScript по -прежнему считает, что статус только «работает» даже после того, как она изменилась. Почему это? Только если я изменяю статус в теле функции, а не на вызов функции, TypeScript признает, что значение статуса изменилось. Почему это поведение? Есть ли какая -то конфигурация, которая может быть изменена или, может быть, другой способ объявить об этом, чтобы TypeScript могла правильно сделать тип?
Подробнее здесь: https://stackoverflow.com/questions/796 ... ged-double