Какие конструкции не нужно использовать в TypeScript

«Какие конструкции не нужно использовать в TypeScript» — вопрос из категории TypeScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

  1. any — отключает проверку типов, теряя преимущества TS. Используй unknown или конкретные типы.
  2. Неявные any — включай noImplicitAny в tsconfig, чтобы избежать неявного any.
  3. as (утверждение типов) — может скрывать ошибки. Лучше использовать сужение типов или guards.
  4. enum — могут быть избыточны. Альтернативы: union-типы (type Status = 'active' | 'inactive') или const-объекты.
  5. Неиспользуемые дженерики — если тип не используется, замени на конкретный или удали.
  6. Опциональные цепочки (?.) без необходимости — могут маскировать проблемы. Проверяй данные явно.

Пример плохого кода:

function getValue(data: any): string {
  return data?.value as string; // ❌ any + as + ?.
}

Лучше:

function getValue(data: { value?: string }): string | undefined {
  return data.value; // ✅ явная типизация
}