Число — это не просто число: как заставить компилятор ловить баги с единицами измерения
Передача миллисекунд туда, где ожидались секунды, — это баг, который проходит все тесты. Вот как закодировать единицы измерения прямо в системе типов TypeScript, чтобы смешение вызывало ошибку на этапе компиляции с нулевыми затратами во время выполнения.
Функция просит таймаут в миллисекундах. Вы передаёте . Позже другая функция просит таймаут в секундах. Вы передаёте . Где-то между ними вызываете и ничего не…