Я создал один проект угловой библиотеки, который имеет один компонент и один раз api (UserApi) (абстрактный класс).У меня есть другой проект, который использует эту библиотеку.Этот проект также имеет службу (UserService реализует UserApi), которая реализует API библиотеки.
В файле модуля моего проекта я добавил провайдера, используя следующий код.
{ provide: UserApi, useExisting: UserService }
Теперь есть два способа получить оператор импорта для UserApi.
import { UserApi } from 'mylibrary';
или import { UserApi } from 'projects/mylibrary/src/public_api';
Первый - правильный путь.Тем не менее, это не работает, когда я использую первый импорт.Это работает, когда я использую второй импорт.Но я не могу выпустить свой код со второй строкой.После дальнейшей проверки я обнаружил, что, когда я обращаюсь к UserApi из выпущенной библиотеки, он доступен через файл определения.
и код похож на
import { Observable } from 'rxjs/Observable';
export declare abstract class UserApi {
abstract getConfigName(): Observable<string>;
}
В моем исходном коде у меня нет ключевого слова «объявлять», пока оно есть в выпущенном коде.И по этой причине мой проект не может использовать предоставленную услугу.
Как это можно исправить?
Обновление: Код из public_api
`
export * from './lib/user-shared.service';
export * from './lib/user-shared.component';
export * from './lib/user-shared.module';
export * from './lib/component/usermanager.component';
export * from './lib/coreapi/userapi';
`