Що робить ключ useFactory?
Ключ useFactory каже Angular:
«Створи залежність за допомогою моєї функції (фабрики), а не просто через клас чи значення.»
Приклад:
ts
providers: [
{
provide: 'API_URL',
useFactory: () => {
return window.location.hostname === 'localhost'
? 'http://localhost:3000'
: 'https://api.example.com';
}
}
]Тут Angular під час запуску викличе цю функцію і підставить її результат (API_URL) у залежності.
Коли це потрібно:
- коли значення потрібно обчислити динамічно;
- коли воно залежить від умов (середовища, налаштувань, токена тощо);
- коли потрібно використати інші залежності всередині фабрики.
Приклад із залежністю:
ts
providers: [
{
provide: ConfigService,
useFactory: (apiUrl: string) => new ConfigService(apiUrl),
deps: ['API_URL'] // залежності для фабрики
}
]Підсумок:
useFactory - це спосіб сказати Angular: «отримай залежність, викликавши мою функцію, яка сама вирішить, що повернути».
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.