Универсальный класс, который расширяет свой параметр типа

#typescript

#typescript

Вопрос:

Возможно ли в TypeScript 2.x иметь универсальный / параметрический, class который extends имеет свой собственный параметр типа?

Что-то вроде class C<T implements I> extends T {}

Чего я пытаюсь достичь более подробно:

 interface ConnectionImpl {
  connect(address): Promise<ConnectionImpl>
}
class HTTPConnection implements ConnectionImpl {
  connect(url: string): Promise<HTTPConnection> { ... }
}
class Connecton<T implements ConnectionImpl> extends T {
  constructor(private address) {}
  handshake(key: number): Promise<Token> { 
    return this.connect(this.address)
      .then(...)
  }
}
let conn = new Connection<HTTPConnection>("...")
  

Комментарии:

1. Это похоже на проблему XY. Что вы пытаетесь сделать?

2. Добавлено больше деталей к вопросу о том, чего я пытаюсь достичь