вывести) уменьшает время сборки проекта?
Сомневаюсь
нет
Да, явное аннотирование типов (прежде всего, типов возвращаемых значений у функций) может ускорять тайп-чекинг, особенно при инкрементальной компиляции (явно указанные типы компактнее выведенных, и TS быстрее читает и записывает файл с JSON-представлением результатов предыдущей компиляции): Using Type Annotations. Однако разница будет заметна, скорее всего, только на крупных проектах (сколько времени занимают разные шаги компиляции, можно посмотреть с помощью флага extendedDiagnostics). Поэтому решение о явном указании типов лучше принимать из других соображений. В средних проектах удобно полагаться на автовывод, и писать меньше типов. В крупных проектах, с сильным зацеплением между модулями, с наличием разных потребителей модулей, может быть оправдано использование принципа инверсии зависимостей, требующего явного и отдельного от имплементаций определения всех типов, от которых зависит модуль. Внутри модуля это может выглядеть, как дублирование (зачем импортировать откуда-то тип возвращаемого значения функции в модуле, если она сама может вывести этот тип?), но явное указание типов позволяет изменять реализацию модуля без правок в коде его потребителей.
Спасибо
Обсуждают сегодня