Окей, так уж и быть накидаю тайпскрипту.
P.S. У меня вообще какая-то дурацкая привычка обсирать то, чем я пользуюсь :)
Ну во-первых typescript себя не позиционирует как СТРОГОСТЬ. Это скорее такой баланс между типизацией и продуктивностью.
Чего только стоит это долбанное
any
или оператор (или это не оператор) ! которые просто отключают любые проверки.Во-вторых огромное количество конструкций не требует реального доказательства, например is

При чем , что если убрать функцию check он понимает что у переменной не может быть состояния number

@jsunderhood так ну все приличные люди банятany
и!
на уровне линтера иначе же весь смысл теряется
Вот поступил комментарий что все нормальные люди банят any twitter.com/t1tvs/status/1…. А вы знаете что происходит внутри дефинишенов, которые вы используете?

Или например generic-и, ну это если честно вообще боль. Описание дженериков в тайпскрипте це боль.
А все потому что ты должен все описывать руками. И это работает неплохо на простых примерах. Но потом ты сталкиваешься с реальностью

Ну либо потом к тебе заходит ПР github.com/cypress-io/cyp…

Really love writing complex typescript generics. Because other devs looking at your code like at the black magic 🙄
twitter.com/dmtrKovalenko/…
Как-то запостил такую фигню и меня закидали помидорами, но это реально так – вот такую байду понять нужно как минимум долго сидеть и вчитываться в код.
А по-другому и не напишешь.
А еще можно накидать за структурную типизацию. То есть любые объекты с совпадающей структурой будут равнозначными.
А на этом можно сильно напоротся. Вот из жизни пример с системами координат.
P.S. функция будет неправильно работать

Но это может быть пофикшено вот этим ПР-ом github.com/microsoft/Type…
Ну или вот, потеря типов на тюплах на абсолютно любых взаимодействиях с массивом

Короче еще куча всего, тайпскрипт это скорее штука для ускорения разработки, чем для действительно строгих проверок на работоспособность кода.