Как стать автором
Обновить

Комментарии 10

Тем не менее, Typescript не является "серебряной пулей" и на самом деле даёт иллюзию типо-безопасности. При этом, конечно, плюсов у него много.

Вы сами вольны определить, будет ли у вас типобезопасность, или её иллюзия.

Это так не работает) Чтобы гарантировать что-то, надо в любом случае в рантайме проверять

Это работает именно так. "Иллюзия" начинается ровно там, где вы её намеренно создали.
Или вы про то, что TS в рантайме нет? Это не имеет ни малейшего отношения ни к типобезопасности кода TS, ни к её отсутствию.

И все же иллюзия. И, часто, мы никак не можем это контролировать
Простейший пример «type predicate» www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates. Его невозможно сделать типобезопасным
И таких примеров в TS много(

А что там небезопасного в «type predicate»?

Вероятно имеется в виду, что можно намеренно или нечаянно наврать в коде проверки типов и получить в итоге поломку.
Что, однако, не имеет никакого отношения к типобезопасности.

Это практически из той же оперы, что и type assertion.


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

Почему бы не сравнить кол-во issues и не упомянуть, что в самой доке по ts написано, что
TypeScript’s type system allows certain operations that can’t be known at compile-time to be safe. When a type system has this property, it is said to not be “sound”.

Тогда как Flow
By checking every possible value, Flow might catch errors that will not actually occur when the code is run. Flow does this in order to be “sound”.

Добавил строку с количеством issues на github.

Несмотря на то, что написано в документации, обе системы ведут себя примерно одинаково. При вызове типизированного кода из нетипизированного будут молчать, а при обратном вызове будут ругаться на использование any, если иное не указано в настройках.

По моему опыту flow ведёт себя «тише» по умолчанию.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории