Контракты тестами вполне покрываются
Про малую пользу от типов в рантайме, мягко говоря, не согласен. Не очень приятно получать ошибки в рантайме, потому что от типов, на которые ты надеялся, остался пшик. Пример Ильи Климова, кажется, примерно об этом
Скажи, пожалуйста, какой толк от типов в рантайме, если я благодаря ts знаю какой мне тип будет приходить? Твоя программа зависит от входных данных, и только не валидные входные данные могут вызвать непредвиденную ошибку — но уже давно есть библиотеки-валидаторы, которые проверят значения на типы и вернут ошибку, если что не так.