Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Nest.js: injectable, inject, nest js

В чем разница между декораторами @Injectable() и @Inject()?

Вопрос проверяет, как различаются два популярных декоратора в NestJS — @Injectable() и @Inject(), используемых для внедрения зависимостей.

Короткий ответ

Декоратор @Injectable() используется для пометки классов как "инъектируемых", то есть таких, что могут быть внедрены как зависимости в другие компоненты NestJS. Декоратор @Inject() используется для явного указания, какую зависимость внедрить в класс, если NestJS не может автоматически разрешить ее тип.

Длинный ответ

@Injectable() помечает класс как таковой, который может быть использован для внедрения зависимостей в другие классы. Этот декоратор автоматически разрешает зависимости через типы, указанные в конструкторе.

@Inject() используется, когда нужно вручную указать, какую зависимость нужно внедрить. Это может понадобиться, если NestJS не может автоматически определить зависимость по типу, или когда нужно использовать интерфейс или абстракцию для внедрения.

Пример:

@Injectable()
export class UserService {
  	constructor(private readonly userRepository: UserRepository) {}
}

@Injectable()
export class AppService {
  	constructor(@Inject(UserService) private readonly userService: UserService) {}
}

В этом примере UserService помечен как инъектируемый класс, а AppService использует @Inject() для явного внедрения зависимости UserService.

  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Nest.js

    Nest.js

Ключевые слова

#injectable

#inject

#nest js

Подпишись на Node.js Developer в телеграм

  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.