Алиасы paths
Вопрос
В tsconfig добавили "paths": { "@/*": ["./src/*"] }, а в настройки сборщика ничего. Что будет с import { api } from '@/api'?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Варианты ответа
- TypeScript перепишет путь на относительный при сборке
- Всё работает:
tscи сборщик читают одни настройки - Типы проверятся, но сборщик или рантайм не найдёт
@/apiправильный ответ - Ошибка проверки типов:
pathsбезbaseUrlне работает вообще
Разбор
paths это подсказка только для проверки типов: компилятор найдёт файл и типы. Пути в выходном коде tsc не переписывает, а Vite, webpack или Node.js про tsconfig по умолчанию ничего не знают. Поэтому нужен тот же алиас в сборщике (или плагин вроде vite-tsconfig-paths), а в Node.js поле imports в package.json.
Начиная с TypeScript 4.1 paths работает без baseUrl. Некоторые инструменты (Next.js, Bun) читают paths сами, но это их особенность, а не поведение TypeScript.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.