Visual studio TypeScript-ReSharper显示泛型继承错误,但项目构建良好

Visual studio TypeScript-ReSharper显示泛型继承错误,但项目构建良好,visual-studio,generics,typescript,resharper,Visual Studio,Generics,Typescript,Resharper,升级到ReSharper 10后,将显示以下错误,但生成时没有任何错误 类“BaseTourModule”无法扩展类“BaseModule”:类型“BaseModule”和“BaseTourModule”的属性“设置”的类型不兼容 类型参数“TSetup”约束与“TSetup”无关 类型参数“TSetup”与不是类型参数的“BaseTourModuleSetup”不兼容 而BaseModule定义为 export abstract class BaseModule<TSetup exten

升级到ReSharper 10后,将显示以下错误,但生成时没有任何错误

类“BaseTourModule”无法扩展类“BaseModule”:类型“BaseModule”和“BaseTourModule”的属性“设置”的类型不兼容 类型参数“TSetup”约束与“TSetup”无关 类型参数“TSetup”与不是类型参数的“BaseTourModuleSetup”不兼容

BaseModule
定义为

export abstract class BaseModule<TSetup extends BaseModuleSetup> {
    protected settings: TSetup;
}
BaseTourModule
(抛出错误的地方)的具体实现是:


我使用的是Visual Studio 2015 Professional,该项目是根据
ECMAScript 5
使用
TypeScript 1.6
构建的。这是
ReSharper的错误,还是有什么我看不到的错误?

看起来您在继承中使用了强制转换,据我所知,应该是这样的:

export abstract class BaseModuleSetup {
    protected translations: { [index: string]: string; } = {};
    abstract isValid(): boolean;
}

export abstract class BaseModule extends BaseModuleSetup {
    protected settings: TSetup;
}

export abstract class BaseTourModuleSetup extends BaseModuleSetup {
}

export abstract class BaseTourModule extends BaseTourModuleSetup {
}
不管怎样,(在不知道您想要实现什么的情况下)看起来您的类层次结构过于复杂了


如果您愿意,您可以解释您的目标是什么,我们可以根据您的需要构建最佳类图

看起来您在继承中使用了铸造,根据我的理解,应该是这样的:

export abstract class BaseModuleSetup {
    protected translations: { [index: string]: string; } = {};
    abstract isValid(): boolean;
}

export abstract class BaseModule extends BaseModuleSetup {
    protected settings: TSetup;
}

export abstract class BaseTourModuleSetup extends BaseModuleSetup {
}

export abstract class BaseTourModule extends BaseTourModuleSetup {
}
不管怎样,(在不知道您想要实现什么的情况下)看起来您的类层次结构过于复杂了


如果您愿意,您可以解释您的目标是什么,我们可以根据您的需要构建最佳类图

这是ReSharper10.0中的一个问题。已经为bugfix更新10.0.1进行了修复,该更新将相对较快地发布

这是ReSharper10.0中的一个问题。已经为bugfix更新10.0.1进行了修复,该更新将相对较快地发布

这是ReSharper 10.0中的一个错误:。已经为bugfix update 10.0.1进行了修复,该版本将很快发布。@Anton,你能把它写下来作为一个答案,而不是一个评论吗?这样就可以将其标记为答案。这是ReSharper 10.0中的一个错误:。已经为bugfix update 10.0.1进行了修复,该版本将很快发布。@Anton,你能把它写下来作为一个答案,而不是一个评论吗?这样就可以将其标记为答案。
export abstract class BaseTourModuleSetup extends BaseModuleSetup {
}
export abstract class BaseModuleSetup {
    protected translations: { [index: string]: string; } = {};
    abstract isValid(): boolean;
}

export abstract class BaseModule extends BaseModuleSetup {
    protected settings: TSetup;
}

export abstract class BaseTourModuleSetup extends BaseModuleSetup {
}

export abstract class BaseTourModule extends BaseTourModuleSetup {
}