Угловое предупреждение " предупреждение:не удается разрешить все параметры…"
У меня есть приложение Ionic / Angular, которое я только что обновил до Ionic 3 / Angular 4. У меня есть несколько базовых классов, которые я использую для своих страниц...
@Injectable()
export abstract class BasePage {
constructor(
userMessageService: UserMessageService,
logger: Logger,
translate: TranslateService,
derivedClassName: string,
) {
super(userMessageService, logger, translate, derivedClassName);
this.data = new Array<T>();
}
После обновления я теперь получаю следующее предупреждение..
Warning: Can't resolve all parameters for PageBase in D:/dev/myapp/src/pages/page-base.ts: ([object Object], [object Object], [object Object], ?). This will become an error in Angular v5.x
Warning: Can't resolve all parameters for CardPageBase in D:/dev/myapp/src/pages/card-page-base.ts: ([object Object], [object Object], [object Object], ?). This will become an error in Angular v5.x
Так что, похоже, ему не нравится Аргумент string
. Все, что я использую это для некоторого ведения журнала, и я просто передаю его туда, где я создаю экземпляр класса, производного от этого..
Например super(userMessageService, logger, translate, 'MyPage');
Кто-нибудь знает, почему это выглядит так, что это не будет возможно, а также как я могу теперь передать такой аргумент (надеюсь, без необходимости иметь отдельный сеттер метода init)
Заранее спасибо за любую помощь!
1 ответ:
Нашел свою проблему. Я думал, что вам нужен
@Injectable()
на базовой странице класса, например..@Injectable() export abstract class BasePage { constructor(protected name : string, messageProvider : MyServiceProvider) { console.log("Baseclass calls " + messageProvider.getMessage()); } }
Когда я удалил это, все еще работало нормально, и ошибки исчезли. Я должен был включить класс def в исходный вопрос (который я сейчас добавлю)