Содержание
  1. noUncheckedIndexedAccess
  2. Где это важно
  3. verbatimModuleSyntax
  4. Типы на границах
  5. Итог

Строгий TypeScript часто воспринимают как набор формальностей. На практике он ловит ошибки, которые иначе всплывают в браузере.

noUncheckedIndexedAccess

Опция заставляет помнить, что элемента по индексу может не быть:

const posts: string[] = [];
const first = posts[0]; // string | undefined

Без неё TypeScript считает first строкой и разрешает first.toUpperCase(). С ней приходится обработать пустой массив явно.

Где это важно

  • ответы API с массивами;
  • Object.entries() и словари;
  • разбор URL и query-параметров.

verbatimModuleSyntax

Импорты типов должны быть явными:

import type { CollectionEntry } from 'astro:content';

Так сборщик не тащит лишний код в бандл и не путает тип с runtime-значением.

Типы на границах

Внутри функции TypeScript выводит типы сам. На границах — данных, API, props компонентов — лучше писать явно. Это документация, которая проверяется компилятором.

Хороший тип не описывает всё, что может быть. Он запрещает то, чего быть не может.

Итог

Strict-режим — не бюрократия, а дешёвая страховка. Ошибки, которые он ловит, обычно дороже в отладке, чем в исправлении.