Typescript 重写抽象方法类型脚本?

Typescript 重写抽象方法类型脚本?,typescript,typescript2.0,Typescript,Typescript2.0,我有一个抽象的方法: abstract setProp<T, K extends keyof T>(value: keyof T, key: K); 我试图推翻这个班内继承人: public setProp<IParentProfile, K extends keyof IParentProfile>(value: keyof IParentProfile, key: K) { this.model[key] = value; } 但解释告诉我一个错误:

我有一个抽象的方法:

abstract setProp<T, K extends keyof T>(value: keyof T, key: K);
我试图推翻这个班内继承人:

public setProp<IParentProfile, K extends keyof IParentProfile>(value: keyof IParentProfile, key: K) {
    this.model[key] = value;
  }
但解释告诉我一个错误:

抽象类中不兼容的重写方法,我在哪里犯了错误

我也试过这样做:

abstract setProp<T, K extends keyof T>(model: T, value: keyof T, key: K): T;
并使用:

public setProp<IParentProfile, K extends keyof IParentProfile>(model: IParentProfile, value: keyof IParentProfile, key: K) {
    return model[key] = value;
  }

你能明白为什么会这样吗?正如我在评论中所说,它看起来像一个编译器错误。这只是解决无法重写泛型方法的问题,而不是解决您稍后在链接中添加的代码

以下是TypeScript 2.9及以下版本中的当前错误:

class A {
  m<T, U extends T>(t: T, u: U) { }
}

class B extends A {
  m<T, U extends T>(t: T, u: U) { }
//^--error, T is not assignable to T
}
我通常不建议使用@ts ignore,因为它所做的只是抑制错误输出;它不会神奇地修复任何东西。但假设编译器错误在不久的将来得到修复,这是一个合理的临时修复


希望有帮助;祝你好运

嗯,对我来说似乎是个编译器错误,但谁知道呢。这里有一个更详细的问题。你能在Questin中查看我的链接吗?在你的链接中,你没有为KI提供任何类型的链接。我想知道为什么这不起作用。如果某位官员/知识渊博的人没有回答,如果你没有就此展开调查,我可能会这样做。祝你好运。@OPV我希望你每个问题问一个问题。链接中的代码是另一个问题;您想要,这应该在中提供。
class A {
  m<T, U extends T>(t: T, u: U) { }
}

class B extends A {
  // @ts-ignore
  m<T, U extends T>(t: T, u: U) { } // no error
}