我的问题更多是关于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给我一个错误,你可以在下面找到
我在VS2013 Ultimate上使用最新的Resharper版本。仅仅是Resharper的问题还是代码实际上是错误的?
答案 0 :(得分:3)
仅使用Resharper是问题还是代码实际上是错误的?
如果您可以运行tsc -p <path your tsconfig.json>
并且没有错误,=&gt;一个resharper问题。请注意,resharper与官方打字稿实现中有自己的langauge服务实现不同。
除此之外基于您的代码:
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