Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Есть и другие альтернативы: не использовать синтаксис throw и вместо этого всегда возвращать пользовательские объекты ошибок.Глупая идея потому что если вернуть этот fancy Failable, то в случае если этот Failable не обработать, то код продолжит выполнятся, а вот в случае Exception/Error выполнение прервется. В JS нет способов форсировать обязательную обработку этих ваших Rust-подобных Return, поэтому делать подобные вещи в реальных проектах это большое зло, ну а писать в блоги пожалуйста если хочется.
Хорошо:Еще лучше если в линтере будет включено правило запрета относительных импортов, особенно которые идут вверх / где "..." в пути импорта.
import { UserService } from '@services/UserService';
Убедитесь, что вы используете следующие хорошие практики для операторов import:«Убеждаться» не нужно, нужно это автоматизировать github.com/renke/import-sort.
Не игнорируйте ошибки, возникшие в промисахОпять же нет упоминания о включении соответствующих правил линтера.
Еще лучше если в линтере будет включено правило запрета относительных импортов, особенно которые идут вверх / где "..." в пути импорта.
Алиас обычно это не конкретный файл, а глоб. Он меняется в 1 месте, и автоматом все импорты из алиаснутой папки указывают в новое место. Опять же, современный IDE типа VSCode вполне умеют работать с ними. А вот с относительными путями при рефакторинге асе гораздо интереснее. Вы переместили папку с 10 файлами, и теперь вам надо все импорты переписать, вместо того чтобы обновить один алиас.
Но и алиасы к сожалению не панацея. Некоторые сборщики (например Parcel) не умеют в алиасы, во всяком случае, в стандартные из tsconfig. И это может доставить хлопот.
Обычно мешают не просто относительные, а идущие вверх — их сложно вычислять в уме. Плюс, идущие вверх часто означают нарушение SRP и(или) DI.
Чистый код для TypeScript — Часть 3