2

我的问题更多是关于 Resharper TypeScript 支持,因为您稍后会发现。

我的存储库有这样一个通用接口

export interface IRepository<T> {
    getAll(): IPromise<T[]>;
    getItem(id: number): IPromise<T>;
    add(item: T): IPromise<T>;
    update(item: T): IPromise<T>;
    deleteItem(item: T): IPromise<T>;
}

以及下面的这种实现。请注意,该类的泛型类型被限制为扩展IIdentifyable接口,从而确保该类型包含数字Id属性

export abstract class BaseHttpRepository<T extends IIdentifyable> implements IRepository<T> {
    // ...
    add(item: T): angular.IPromise<T> {
        var url = this.getFullUrl();
        return this.httpService.post<T>(url, item);
    }
    // ...
}

我想代码是正确的,因为带有 TS1.6 的 Visual Studio 编译得很好。但是,Resharper 给我一个错误,您可以在下面找到

resharper 打字稿错误

我在我的 VS2013 Ultimate 中使用最新的 Resharper 版本。仅仅是 Resharper 的问题还是代码实际上是错误的?

4

1 回答 1

3

仅仅是 Resharper 的问题还是代码实际上是错误的?

如果你可以运行tsc -p <path your tsconfig.json>并且没有错误,=> 一个更清晰的问题。请注意,resharper 有自己的语言服务实现,不同于官方的typescript 实现。

除此之外,基于您的代码:

export interface IRepository<T> {
    add(item: T): IPromise<T>;
}
export abstract class BaseHttpRepository<T extends IIdentifyable> implements IRepository<T> {
    // ...
    add(item: T): angular.IPromise<T> {
        // ...
    }
    // ...
}

应该没问题tsc

于 2015-11-11T22:33:17.623 回答