我有一个这样的抽象类:
FORMS
在继承的类中,我想将类本身的类型作为参数T传递,所以我尝试这样做:
return {
// loaded, loading…
results: {
...state.results,
FORMS: state.results.FORMS.map(
item => item.id === form.id ? {
...item,
categories: form.categories,
} : item,
),
},
}
但intellisense警告我'Type parameter InheritedClass隐藏类Inherited class'
这条消息究竟意味着什么?还有其他方法可以达到这个目的吗?
答案 0 :(得分:1)
错误是因为您的方法正在创建一个与该类同名的泛型类型。只有在调用方法时,才能为方法指定泛型类型。
实现这一目标的唯一方法是在类上定义泛型类型,以便在继承时指定它。
public abstract class BaseClass<T>
{
public abstract void MyMethod(T value);
}
public class InheritedClass: BaseClass<InheritedClass>
{
public override void MyMethod(InheritedClass value)
{
}
}