Я не понимаю как тесты могут решать "ту же задачу"
Типы обеспечивают надежность не только непосредственно строгостью самих типов, а еще и давая возможность делать удобные инструменты для разработчиков
Если чтобы понять тип функции надо лезть и смотреть в тесты - не думаю, что это очень уж удобно и быстро