2026-04-30 19:32:10 +03:00
---
title: Алиасы импортов
description: Какие алиасы импортов есть в проекте и как ими пользоваться.
2026-05-08 08:21:34 +03:00
keywords: [алиасы, aliases, paths, tsconfig, импорты, baseUrl, app, layouts, screens, widgets, business, infra, ui, shared]
2026-04-30 19:32:10 +03:00
---
# Алиасы импортов
Какие алиасы импортов есть в проекте и как ими пользоваться.
## Конфиг
`tsconfig.json` в корне проекта:
```json
{
"compilerOptions": {
"paths": {
"app/*": ["./src/app/*"],
"layouts/*": ["./src/layouts/*"],
"screens/*": ["./src/screens/*"],
"widgets/*": ["./src/widgets/*"],
"business/*": ["./src/business/*"],
2026-05-08 08:21:34 +03:00
"infra/*": ["./src/infra/*"],
2026-04-30 19:32:10 +03:00
"ui/*": ["./src/ui/*"],
"shared/*": ["./src/shared/*"]
}
}
}
```
Восемь алиасов — ровно по числу слоёв. Других алиасов в проекте нет.
## Правила
- **Каждый импорт между модулями — через алиас слоя.** Относительные пути (`../../` ) запрещены за пределами своего модуля.
- **Внутри одного модуля** допустимы относительные импорты (`./model` , `./ui/button` ) — это часть инкапсуляции модуля.
- **Префикс `@/` не используется.** Имя слоя — само по с е б е адрес.
2026-05-08 08:21:34 +03:00
- **Направление импортов** определяется архитектурой, не алиасами. Алиас разрешает импорт технически, но не отменяет правила слоёв (→ [Слои ](../basics/architecture/layers.md )).
2026-04-30 19:32:10 +03:00
**Хорошо**
```ts
import { Button } from 'ui/button'
import { useUser } from 'business/user'
import { formatDate } from 'shared/utils/date'
```
**Плохо**
```ts
// Относительный путь между модулями
import { Button } from '../../../ui/button'
// Префикс @/ , которого нет в paths
import { Button } from '@/ui/button '
// Алиас на src — не предусмотрен
import { Button } from 'src/ui/button'
```
## Внутри модуля
Внутри своего модуля — относительные пути:
```ts
// src/ui/button/button.tsx
import styles from './button.module.css'
import { Icon } from './icon'
```
Н е использовать алиас на самого себя:
```ts
// Плохо — алиас вместо относительного пути внутри модуля
import { Icon } from 'ui/button/icon'
```