Pull to refresh
7
0

FE engineer

Send message

Typescript: unsound behavior или поблажки надежности

Reading time11 min
Views6.4K
Цель — показать, где TS дает иллюзию безопасности позволяя получить ошибки во время работы программы.

Мы не будем говорить о багах, в TS их достаточно
1,500 open bugs and 6,000 closed (‘is:issue is:open label:Bug’)

Все примеры будет рассмотрены при:

  • TS strict mode включен (написал статью пока разбирался)
  • Без явных «any»: «as any», «Objects», «Function», {[key: string]: unknown}
  • Без неявных «any»: (noImplicitAny): не типизированные импорты (pure JS files), неправильный вывод типов
  • Без ложных догадок о типах: ответ от сервера, типизация сторонних библиотек

Содержание:

  • Введение
  • Nominal types, custom types — когда вещи кажутся одинаковым, но такие разные
  • Type variance, exact types — об отношении между типами
  • Refinement invalidation — поговорим о доверии
  • Exceptions — стоит ли признаваться, когда накосячил?
  • Unsafe operations — уверенность не всегда идет на пользу
  • Бонусные случаи — проверка типов на этапе PR ревью
  • Заключение
Читать дальше →
Total votes 15: ↑13 and ↓2+17
Comments17

Strict mode in TypeScript: описание флагов, примеры

Reading time4 min
Views12K

--strict флаг включает следующие флаги (и в какой версии добавлены):


--strictNullChecks (2.0)
--alwaysStrict (2.1)
--noImplicitAny
--noImplicitThis (2.0)
--strictBindCallApply (3.2)
--strictFunctionTypes (2.6)
--strictPropertyInitialization (2.7)

Приведем примеры и попытаемся разобраться в одном месте, что все это значит.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments1

Information

Rating
Does not participate
Location
Беларусь
Registered
Activity