尝试在@ ngrx / data EntityServerCommands <T>接口上实现远程服务器方法时,合并的“删除”方法出错

时间:2019-06-19 08:37:54

标签: angular typescript ngrx ngrx-store angular-ngrx-data

当尝试使用新的@ ngrx / data模块且无法完全理解远程服务器更新实现时,默认的OOTB实现是什么以及如何覆盖它。 当我自己尝试实现该功能时,出现以下有关接口重复EntityServerCommands.delete方法的错误。 会很乐意回答我的特定问题,甚至会提供一个更好的示例。

在查看@ ngrx / data指南时,我找不到有关如何实现远程服务器更新部分的正确说明或howto示例。 甚至不通过实体服务,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();
    }
    .
    .
    .
}

主要得到以下错误的变化:

重复的函数实现。

类型“ RequestService”中的属性“删除”不能分配给基本类型“ EntityServerCommands”中的相同属性。 类型'{{entity:RequestInfo,options ?: EntityActionOptions)=> Observable'不能分配给类型'{{entity:RequestInfo,options ?: EntityActionOptions):Observable; (键:字符串|数字,选项?:EntityActionOptions):可观察; }'。     参数“实体”和“键”的类型不兼容。     输入'string |数字”不可分配给“ RequestInfo”类型。         不能将“字符串”类型分配给“请求信息”类型。

0 个答案:

没有答案