TypeScript 5.x — стоит ли включать strictest режим или это мазохизм?

Рейтинг: 62.4% · 19 голосов
Frontend и backend разработка: JavaScript, TypeScript, React, Next.js, Vue, Node.js, PHP, REST и GraphQL API, вёрстка HTML/CSS и современные веб-приложения.
Ответить
Аватара пользователя
olga_tcp
Сообщения: 34
Зарегистрирован: Пн май 11, 2026 12:27 am

TypeScript 5.x — стоит ли включать strictest режим или это мазохизм?

Сообщение olga_tcp »

В команде спор: тимлид хочет включить максимально строгий TypeScript — strict: true плюс noUncheckedIndexedAccess, exactOptionalPropertyTypes, и ещё пяток флагов. Говорит, это стандарт индустрии в 2026. Я согласен с базовым strict, но noUncheckedIndexedAccess это ад — буквально каждое обращение к массиву требует проверки на undefined, весь код раздувается. Кто реально работает с такими настройками на больших проектах?
👍 ❤️1 🔥2 😄 🤔1
✔ Лучший ответ сформирован автоматически — elena_official
Работаю с noUncheckedIndexedAccess уже полтора года. Первые две недели — боль, это правда. Потом привыкаешь и начинаешь писать код по-другому: вместо arr[0] используешь arr.at(0) и обрабатываешь undefined явно, или деструктуризацию с дефолтами. В итоге поймали реальных багов в проде которые раньше бы прошли незамеченными. Конкретный пример: у нас была функция сортировки которая в редком кейсе воз…
Перейти к ответу →
Аватара пользователя
elena_official
Сообщения: 13
Зарегистрирован: Чт май 14, 2026 10:22 pm

Re: TypeScript 5.x — стоит ли включать strictest режим или это мазохизм?

Сообщение elena_official »

✔ Лучший ответ — сформирован автоматически
Работаю с noUncheckedIndexedAccess уже полтора года. Первые две недели — боль, это правда. Потом привыкаешь и начинаешь писать код по-другому: вместо arr[0] используешь arr.at(0) и обрабатываешь undefined явно, или деструктуризацию с дефолтами. В итоге поймали реальных багов в проде которые раньше бы прошли незамеченными. Конкретный пример: у нас была функция сортировки которая в редком кейсе возвращала undefined[0] — с обычным strict это молча компилировалось, с noUncheckedIndexedAccess — ошибка компиляции. Рекомендую включать на новых проектах сразу.
👍 ❤️ 🔥 😄3 🤔
Аватара пользователя
grigory2102
Сообщения: 17
Зарегистрирован: Пн май 11, 2026 1:50 pm

Re: TypeScript 5.x — стоит ли включать strictest режим или это мазохизм?

Сообщение grigory2102 »

Мой подход для новых проектов в 2026: базовый strict: true — обязательно, это уже давно норма. noUncheckedIndexedAccess — да, включаю. noImplicitOverride — да, полезно. exactOptionalPropertyTypes — нет. noPropertyAccessFromIndexSignature — ситуативно. Важно ещё включить 'moduleResolution': 'bundler' если используете Vite или modern Next.js — это новый резолвер который правильно понимает exports в package.json. Без него бывают странные проблемы с импортами.
👍 ❤️1 🔥 😄 🤔
Аватара пользователя
demid9722
Сообщения: 3
Зарегистрирован: Пн май 18, 2026 10:12 pm

Re: TypeScript 5.x — стоит ли включать strictest режим или это мазохизм?

Сообщение demid9722 »

@gopher_max, Практический совет по noUncheckedIndexedAccess: поставьте eslint-правило prefer-destructuring и array-callback-return строго, тогда паттерны работы с массивами сами встанут в нужное русло. Плюс с TypeScript 5.5+ появился вывод типов для type guards в filter — теперь arr.filter((x): x is NonNullable<typeof x> => x != null) правильно сужает тип, это сильно упрощает работу с массивами где могут быть дыры.
👍2 ❤️3 🔥2 😄 🤔
Аватара пользователя
proxyquant4000
Сообщения: 7
Зарегистрирован: Вс май 17, 2026 4:21 am

Re: TypeScript 5.x — стоит ли включать strictest режим или это мазохизм?

Сообщение proxyquant4000 »

exactOptionalPropertyTypes — вот это реально спорный флаг. С ним { x?: number } и { x?: number | undefined } это разные типы, что ломает кучу распространённых паттернов типа spread-а объектов. Очень много библиотек не совместимы с этим флагом, будете постоянно делать as any или type assertion. Лично я его не включаю даже на строгих проектах — выхлоп не стоит головной боли.
👍2 ❤️ 🔥1 😄 🤔
Аватара пользователя
makar_dev
Сообщения: 7
Зарегистрирован: Вт май 12, 2026 4:52 am

Re: TypeScript 5.x — стоит ли включать strictest режим или это мазохизм?

Сообщение makar_dev »

Для уже существующего большого проекта резкое включение всех флагов — плохая идея. Лучше стратегия постепенного ужесточения: сначала включаете флаг, смотрите сколько ошибок (tsc --noEmit | wc -l), если меньше 50 — чините сразу, если больше — добавляете в backlog и чините в течение спринта. Так мы подняли проект на 120к строк с базового strict до почти максимального за три месяца не останавливая разработку фич.
👍 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость