Ошибка при использовании объединенного метода «delete» при попытке реализовать методы удаленного сервера в интерфейсе @ ngrx / data EntityServerCommands <T> - PullRequest
0 голосов
/ 19 июня 2019

При попытке использовать новый модуль @ ngrx / data, и я не могу полностью понять реализацию обновления удаленного сервера, что такое реализация OOTB по умолчанию и как мне ее переопределить.когда я пытаюсь реализовать это самостоятельно, я получаю сообщение об ошибке, касающееся дублирования интерфейса EntityServerCommands.delete метода.будет рад ответить на мой конкретный вопрос и даже лучше рабочий пример.

При просмотре руководства @ ngrx / data я не смог найти правильного объяснения или примера того, как реализовать часть обновления удаленного сервера.,даже не через Entity-Services, EntityCollectionService и EntityServerCommands.

    @Injectable({ providedIn: "root" })
export class RequestService extends EntityCollectionServiceBase<RequestInfo> implements EntityServerCommands<RequestInfo>
{
    constructor(serviceElementFactory: EntityCollectionServiceElementsFactory, private repository: DataService<RequestInfo>) {
        super("Request", serviceElementFactory);
    }

    // inherited from data/EntityServerCommands
    add(entity: RequestInfo, options?: EntityActionOptions): Observable<RequestInfo> {
        return this.repository.add(entity);
    }

    delete(entity: RequestInfo, options?: EntityActionOptions): Observable<number> {
        return this.repository.remove(entity.Id)
        .pipe(map(r => r.Request.Id));
    }

    delete(key: number, options?: EntityActionOptions): Observable<number> {
        return this.repository.remove(key)
        .pipe(map(r => r.Request.Id));
    }

    getAll(options?: EntityActionOptions): Observable<RequestInfo[]> {
        return this.repository.list();
    }
    .
    .
    .
}

Получение в основном вариации следующих ошибок:

Реализация дублирующейся функции.

Свойство 'delete' в типе«RequestService» нельзя назначить одному и тому же свойству в базовом типе «EntityServerCommands».Тип '(entity: RequestInfo, options ?: EntityActionOptions) => Observable' нельзя назначить типу '{(entity: RequestInfo, options ?: EntityActionOptions): Observable;(ключ: строка | число, параметры ?: EntityActionOptions): наблюдаемый;}».Типы параметров «сущность» и «ключ» несовместимы.Тип 'строка |число »не может быть присвоено типу« RequestInfo ».Тип 'string' нельзя назначить типу 'RequestInfo'.

...