2016-12-31 3 views
2

Мне нужна помощь. Я играю с основами Angular2 и TypeScript как часть моего переключения из A1 в A2, поэтому что-то здесь может быть очевидным . вамОшибка Angular2 и TypeScript «Свойство METHOD_NAME не существует в типе typeof CLASS_NAME»

у меня есть такая ситуация:.

  1. Webpack в использовании
  2. AppConfigConst имеет некоторые статические, широкие конфигурационные данные приложения
  3. AppConfigurationInjectable принимает AppConfigConst и предоставляет простой API. для доступа к данным конфигурации.
  4. SelectedLanguageInjectable хотят, чтобы использовать метод из AppConfigConst и здесь я получаю это:

ERROR в [по умолчанию] C: \ _DEV XXX \ Src \ APP \ Shared \ выбранном языке \ выбранный-language.injectable .ts: 9: 46 Свойство 'getSupportedUiLanguages' не существует для типа 'typeof AppConfigurationInjectable'.

enter image description here

+3

Прежде всего вставьте код в вопросы, а не скриншоты. Проблема заключается в 'private appConfiguration ** = ** AppConfigurationInjectable'. '=' должен быть ':', так как '=' определяет значение по умолчанию для параметра, а не его тип. –

+1

... и ваш 'selectedLang' установлен как строка ... не должен ли он быть массивом? – Alex

ответ

5

У Вас есть ошибка в конструкторе. Оно должно быть:

constructor(private appConfiguration: AppConfigurationInjectable){ 

изменения = с :

: для определения типов в машинописи = для установки значения, как вы знаете.

+1

В частности (в данном случае) аргумент функции по умолчанию. Таким образом, переменная 'appConfiguration' завершается, ссылаясь на сам интерфейс/класс AppConfigurationInjectable, а не экземпляр. – user268396

Смежные вопросы