Typescript:重载泛型方法

Typescript:重载泛型方法,typescript,typescript2.0,Typescript,Typescript2.0,如何将这些Java方法签名转换为typescript的最佳wat: public <E> Expression<E> setProjection(Expression<E> e) { //return ... } public Expression<?> setProjection(Expression<?>... o) { for (Expression<?> e : o) this.set

如何将这些Java方法签名转换为typescript的最佳wat:

public <E> Expression<E> setProjection(Expression<E> e) {
   //return ...
}

public Expression<?> setProjection(Expression<?>... o) {
    for (Expression<?> e : o)
        this.setProjection(Projections.tuple(o));
    return //...
}
公共表达式集投影(表达式e){
//返回。。。
}
公共表达式集投影(表达式…o){
for(表达式e:o)
this.setProjection(Projections.tuple(o));
返回/。。。
}

在TypeScript中,您可以通过一个方法签名来满足这两个要求(如果我正确解释的话)

但它将与非重载版本相同

我还没有介绍该方法的实现细节,因为问题是关于重载方面的

public setProjection<E>(...e: Expression<E>[]): Expression<E> {
public setProjection<E>(e: Expression<E>): Expression<E>;
public setProjection<E>(...e: Expression<E>[]): Expression<E>;
public setProjection<E>(...e: Expression<E>[]): Expression<E> {