🔥

Тред (Александр Шушунов)


Для меня статическая типизация - это линтер на стероидах.

Что мы делаем, когда описываем типы в нашем приложении? Мы строим некоторую модель, систему ограничений, систему правил. А линтер проверяет, что наш код соответствует этим правилам.

Описывая типы, мы думаем предметной области. В каких состояниях может быть система. Мы не касаемся реализации.

Это почти TTD. Описываем, что мы хотим получить, а потом реализовываем. И наш “компилятор” проверит, что реализация соответствует идеи.

Но в отличии от тестов, которые проверяют что-то точечно, типы проверяет все кейсы.

Пример. Мы описали результат вызова апи как объектик {ok: boolean, ...} Можно написать логику и тест только на положительный кейс, забыть про ошибки, и система не ударит тебя по рукам. А типы зафорсят тебя описать все ветки.

Если чуток подумать, то можно сделать все совсем красиво. Подробнее в докладе Артёма (@rage_monk) и Дмитрия (@DmitryMakhnev) с #KharkivJS youtube.com/watch?v=S0cCjb…

Александр ШушуновАлександр Шушунов