Вопрос проверяет знание распространённых ошибок и плохих практик при использовании TypeScript, что помогает писать более чистый и поддерживаемый код.
TypeScript предоставляет мощную систему типов, но её неправильное использование может свести на нет все преимущества. Рассмотрим наиболее частые антипаттерны, которые встречаются в реальных проектах.
Тип any отключает проверку типов, что противоречит цели использования TypeScript. Вместо этого следует использовать unknown или конкретные типы.
// Плохо
function process(data: any) {
return data.name;
}
// Хорошо
function process(data: { name: string }) {
return data.name;
}Отключение strict: true в tsconfig.json лишает вас многих проверок, включая strictNullChecks и noImplicitAny. Это делает код менее надёжным.
Применение as для обхода системы типов может скрыть реальные ошибки. Лучше использовать сужение типов (type narrowing) или пользовательские защитники типов.
// Плохо
const el = document.getElementById('root') as HTMLDivElement;
// Хорошо
const el = document.getElementById('root');
if (el instanceof HTMLDivElement) {
// работаем с el
}В TypeScript часто злоупотребляют классами там, где достаточно простых интерфейсов и функций. Это усложняет код без необходимости.
// Плохо
class UserService {
getUser(id: number) { /* ... */ }
}
// Хорошо
function getUser(id: number) { /* ... */ }Декораторы — мощный инструмент, но их чрезмерное использование может сделать код нечитаемым и трудным для отладки. Применяйте их только когда это действительно необходимо.
Вывод: Избегайте этих антипаттернов, чтобы максимально использовать преимущества TypeScript: строгую типизацию, читаемость и поддерживаемость кода. Всегда включайте strict-режим и отдавайте предпочтение конкретным типам вместо any.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию