Хороший глаз, но я уже это учел. Вы предполагаете, что все изученные проекты имели хорошее тестовое покрытие и процессы проверки, о чем исследователи не сказали.

Можно догадаться, что качество было неоднозначным. Реальные проекты обычно не требуют качественных процессов, но все большие приложения должны это делать. Вы также забываете, что почти 80% ошибок никогда не могут быть обнаружены TypeScript, потому что они вообще не являются ошибками типа - они просто не относятся к тому классу ошибок, который TypeScript может предотвратить.

Другими словами, даже если TypeScript мог бы устранить все ошибки типа (это невозможно, потому что он не полностью совпадает с JS), и программисты написали идеальную типизацию (они этого не делают), и, как и исследователи в исследовании, они знали именно там, где ошибки типа могут вызвать ошибки до написания их типизации (они не могут), они все равно попадут в непроницаемую кирпичную стену примерно на 20%.

Наилучший (фантастический) сценарий для TypeScript по-прежнему не сильно сокращает отрицательный баланс ROI.

На самом деле, в проектах, где тщательно соблюдаются высокие стандарты качества, уровень ошибок типа, оставшихся в кодовой базе, по моему опыту составлял 2–4% от оставшихся ошибок. Это примерно 4 ошибки из 1000. Когда вы используете правильный TDD, он улавливает большинство потенциальных ошибок типа. То, как я его использую, я получаю подсказки типа на основе вывода в редакторе в режиме реального времени, а мои модульные тесты выполняются непрерывно при сохранении файла. Я также использую проверки типов во время выполнения с помощью PropTypes и схем. Это довольно узкая сеть для ошибок типа.

Нам нужны более масштабные исследования, чтобы подтвердить мои наблюдения, и я готов признать, что в среднем вы можете увидеть до 10–15 исправляемых ошибок из 1000, даже после других проверок качества.

Как я упоминал в статье, я рассчитывал на более качественный процесс и разделил разницу. Я измеряю, исходя из другого определения нуля. Вот почему 8 вместо 4, 5 или 15. Я измеряю по более строгой шкале качества и делю разницу.