TypeScript泛型相当于Java"?扩展MyClass"

时间:2017-12-29 23:03:56

标签: java typescript generics covariance

Java' ? extends MyClass的TypeScript等价物是什么?

我可以这样效仿:

function myFunc <TComponent extends MyBaseClass>(param: ComponentFixture<TComponent>) {}

但有没有办法将其缩短为:

function myFunc(param: ComponentFixture<? extends MyBaseClass>) {} // causes error TS1138: Parameter declaration expected

也许这还没有实现?

还是有另一种语法吗?

或者有理由不支持这个?

2 个答案:

答案 0 :(得分:0)

您可以将通用类型的默认值设置为MyBaseClass中的ComponentFixture

type ComponentFixture<TComponent extends MyBaseClass=MyBaseClass> = {...}

function myFunc (param: ComponentFixture) {}

这样,如果您在<>打字稿中未提供任何通用参数,则会退回到默认类型MyBaseClass

答案 1 :(得分:-1)

目前,TypeScript中没有这样的语法。 随意向TypeScript团队推荐。

但即使他们同意我也会猜测,这将是一个非常低的优先级。