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

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

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

Сообщение pandas_master »

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

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

Сообщение navspy »

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

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

Сообщение k8s2000 »

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

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

Сообщение icu2 »

@k8s2000, Практический совет по 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 😄 🤔
Аватара пользователя
jownby
Сообщения: 23
Зарегистрирован: 21 май 2026, 03:42

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

Сообщение jownby »

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

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

Сообщение cohenst1 »

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

Вернуться в «Веб-разработка»

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

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