【发布时间】:2017-12-01 17:06:16
【问题描述】:
假设我有一个通用基类和一个基接口:
interface IBase{
// empty
}
class Base<T extend IBase> {
someFunction<T>():T {
return null;
}
}
interface IChild extends IBase {
child_value: string
}
// this is generic class derived from the Base class
class Child<S extends IChild> extends Base<S> {
// this function does not exists in base but
// calls an inherited generic function
doSomeThing(){
this.someFunction({
irrelevant: 'foo'
})
}
}
我不明白为什么上面的代码编译得很好。我在想,当从子对象(Child)调用“someFunction”时,它只会被限制为 IChild 类型的对象(具有属性“child_value”)。但是在这里它是用“不相关的”承诺调用的,编译器没有抱怨。
关于泛型,我错过了什么?如何从泛型父类派生泛型类,并将泛型类型约束为基类型的“子类型”?
我希望我的问题很清楚。
【问题讨论】:
标签: typescript generics