【发布时间】:2021-02-22 23:35:11
【问题描述】:
有没有办法让类的父类使用的方法返回准确的类型(当它用于派生类型的属性发生更改时)?
例子:
abstract class A {
a: string
constructor(a: string) {
this.a = a;
}
}
class B extends A {
b: string
constructor(a: string, b: string) {
super(a);
this.b = b;
}
}
abstract class AColl {
abstract itemsMap: Map<string, A>
items() {
return [...this.itemsMap.values()];
}
}
class BColl extends AColl {
itemsMap: Map<string, B>
}
const bColl = new BColl();
bColl.items() -> Map<string, A> instead of Map<string,B>
在这个例子中,Intellisense 认为这是 Map 有没有办法在不重新实现子类的方法的情况下实现这一点?
【问题讨论】: