Ответ
any— отключает проверку типов, теряя преимущества TS. Используйunknownили конкретные типы.- Неявные
any— включайnoImplicitAnyв tsconfig, чтобы избежать неявного any. as(утверждение типов) — может скрывать ошибки. Лучше использовать сужение типов или guards.enum— могут быть избыточны. Альтернативы: union-типы (type Status = 'active' | 'inactive') или const-объекты.- Неиспользуемые дженерики — если тип не используется, замени на конкретный или удали.
- Опциональные цепочки (
?.) без необходимости — могут маскировать проблемы. Проверяй данные явно.
Пример плохого кода:
function getValue(data: any): string {
return data?.value as string; // ❌ any + as + ?.
}
Лучше:
function getValue(data: { value?: string }): string | undefined {
return data.value; // ✅ явная типизация
}