Angular 2 Export Service из модуля
У меня есть структура каталогов, настроенная так:
app
|- core
| |_identity
| | |_identity.service.ts
| |_ http
| |_apiClient.service.ts (service for interacting with my api)
|-user
| |- models
| | |-user.ts
| |- services
| | | - user.service.ts
| |-listComponent
|
|-tenant
|-models
| |-tenant.ts
|- services
|- tenant.service.ts
....
И мой tenant.service, и мой user.service внедряют мой объект ApiClient (который расширяет службу http). Проблема в том, чтобы ссылаться на это, я должен добавить
import {ApiClient} from '../../../core/http/apiClient.service'
во всех моих компонентах, которые хотят ввести его. Я определил core.module (и импортировал его в мой app.module) и хотел бы иметь возможность ссылаться на мой ApiClient без необходимости знать структуру каталогов (т.е. я хотел бы иметь возможность импортировать его как службу http с import {ApiClient} from '@core/http'
,
1 ответ
Именно так работает разрешение модулей в Typescript.
TypeScript будет имитировать стратегию разрешения времени выполнения Node.js, чтобы находить файлы определений для модулей во время компиляции.
Подробнее об этом читайте здесь.
Вы можете создать библиотеку Angular для своих общих функций и установить ее, используя package.json
так что общий модуль находится внутри node_modules
папка, как и другие библиотеки. тогда вы можете легко использовать все экспортируемые типы, не зная пути к каталогам, например,
import { ApiClient } from 'MyLib';
Надеюсь это поможет!!