Typescript中继承的父类中的参数是啥?
Posted
技术标签:
【中文标题】Typescript中继承的父类中的参数是啥?【英文标题】:What are the arguments in the parent class of an inheritance in Typescript?Typescript中继承的父类中的参数是什么? 【发布时间】:2019-08-05 00:23:08 【问题描述】:在我在文档中找到的一个示例中,Typescript 中的某些继承似乎可以对继承的父类具有附加参数。我不确定这是否是 Typescript 中的新功能。
例如:
export class HttpStrategy extends PassportStrategy(Strategy, 'google')
constructor(private readonly authService: AuthService)
在这种情况下,父类 PassportStrategy 可以接受一个参数。但是,这似乎不是将传递给 PassportStrategy 的构造函数的参数,因为如果是这种情况,它将通过 super() 传递。
那么,这些参数是什么?在 Typescript 继承中父类的参数在哪里使用?
PS:我尝试在线搜索它的文档,但我认为我没有使用此类参数的正确关键字。
【问题讨论】:
【参考方案1】:您在extends
子句中提供的内容可以是任何表达式,因此发生的情况是,一个名为PassportStrategy
的函数 被这两个参数调用,然后HttpStrategy
扩展了类它返回,像这样:
function Base(arg)
return class
doSomething()
console.log("something: ", arg);
;
class Sub1 extends Base(1)
const s1 = new Sub1();
s1.doSomething();
class Sub2 extends Base(2)
const s2 = new Sub2();
s2.doSomething();
【讨论】:
啊,所以它是一个返回类而不是函数的 HOF?!非常感谢!以上是关于Typescript中继承的父类中的参数是啥?的主要内容,如果未能解决你的问题,请参考以下文章