TypeScript не даст вам сделать этот вызов: кодирование состояния протокола в системе типов
Как использовать phantom types и параметры `this`, чтобы превращать недопустимые переходы протокола в ошибки компиляции вместо runtime-багов.
В каждом клиенте API прячется конечный автомат. Сначала handshake. Потом аутентификация. Затем отправка данных. Закрытие в конце. Нарушьте этот порядок —…