API-интерфейсы компилятора Typescript позволяют программно создавать компиляторы часов с помощью ts.createWatchCompilerHost
API, с примером его использования, продемонстрированным в документах Typescript здесь.
Этот API принимает обратный вызов в качестве последнего аргумента, который будет вызываться каждый раз при изменении статуса наблюдения, с предоставленным объектом Diagnostic
, который описывает изменение статуса наблюдения.
Используя эти диагностические события, я пытаюсь различить состояние compiling
, success
и failure
. Я обнаружил, что состояние compiling
работает нормально, но я обнаружил странность при определении разницы между success
и failure
.
Проблема, с которой я столкнулся, связана с тем, что диагностические коды применяются следующим образом. Если при сборке произошла 1 ошибка, предоставляется код 6193
, в противном случае предоставляется код 6194
. Это означает, что код 6194
предоставляется, если ошибок не было (success
) или было 2+ ошибки (failure
). Эту логику можно увидеть в компиляторе ts