Angular 6: Почему я не могу расширить Сервисы, не потеряв функции ChildService? - PullRequest
0 голосов
/ 02 октября 2018

Я строила кучу угловых REST-сервисов для моего веб-интерфейсе.Там для я думал, что это будет хорошая идея, чтобы иметь мать класс BaseRestService, который реализует все равные вещи, как заголовки и некоторые вспомогательные функции.

1003 * Но когда мой ребенок служба расширяет BaseRestService, Iполучить TypeErrors, когда я звоню некоторые из дочерних функций.Я пытался отладки, и мог видеть, что служба ребенок не типа SomeExampleChildSerivce, вместо этого типа BaseRestService.Может кто-нибудь объяснить это поведение или сказать мне, что я делаю неправильно 1009 * Ниже вы можете увидеть код моего BaseRestService и ChildService: 1013 * BaseRestService: 1015* * * 1016 ChildService: 1018 *

Ответы [ 2 ]

0 голосов
/ 17 января 2019

У меня недавно была та же самая проблема снова.Я не мог видеть никакой разницы в коде, поэтому я обновил angular с версии 6.1 -> 7.0, которая исправила эту проблему.

0 голосов
/ 02 октября 2018

Это действительно не проблема Angular, а проблема Typescript.Могу поспорить, что вы определили инъекцию для потребителей, используя тип «BaseRestService», правильно?

Если вы делаете это, то вы не получите доступ к дочерним методам.

В таком случае вы можете захотеть иметь интерфейс для общих методов в дочерних элементах, а затем на фабрике производить дочерние элементы для вас на основе некоторых критериев.Есть и другие приемы инъекций, но вы поймете идею.

В качестве альтернативы, вы можете сделать миксин, который может выполнить то, что вы хотите по-другому.

См. https://www.typescriptlang.org/docs/handbook/mixins.html

...