Я полагаю, что ошибка, с которой вы столкнулись, такова:
Скомпилировано с проблемами: X
ERROR
src/app/services/data.service.ts:14:23 - error NG2003: No suitable injection token for parameter 'url' of class 'DataService'.
Consider using the @Inject decorator to specify an injection token.
14 constructor(private url: string, private http: HttpClient) {}
~~~
src/app/services/data.service.ts:14:28
14 constructor(private url: string, private http: HttpClient) {}
~~~~~~
This type is not supported as injection token.
Класс DataService (расширенный PostService) не должен быть инжектируемым. Внедряемый означает, что класс (то есть DataService) доступен для предоставления и внедрения в качестве зависимости, чего не должно быть, поскольку его целью является предоставление формы или службы многократного использования (во избежание написания одного и того же кода в нескольких службах)
решение состоит в том, чтобы закомментировать декоратор Injectable в DataService
// @Injectable({
// providedIn: 'root',
// })
export class DataService {
constructor(private url: string, private http: HttpClient) {}
И PostService должен выглядеть так:
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { DataService } from './data.service';
@Injectable({
providedIn: 'root',
})
export class PostService extends DataService {
constructor(http: HttpClient) {
super('https://jsonplaceholder.typicode.com/posts', http);
}
}