Получить тип возврата на основе параметра - PullRequest
0 голосов
/ 14 апреля 2020

Я не уверен, как это сделать, но как передать typeof XXX параметру метода и сказать, что тип возвращаемого значения является экземпляром этого метода?

Итак, у меня есть этот метод :

public getComponent<T>(component: typeof Behavior): Parameters<(c: T) => T> {}

Затем я использую его следующим образом:

class Main { 
  getComponent() {
    // Finds an instance and returns it
  } 
}

class Behavior {}
class Item extends Behavior {}


let result = (new Main()).getComponent(Item)

Затем TypeScript говорит, что result является экземпляром Behavior вместо экземпляра Item. Как правильно сделать, чтобы результат был экземпляром Item?

1 Ответ

1 голос
/ 14 апреля 2020

Это то, что вы хотите?

getComponent<T extends Behavior>(component: new(...args: any[]): T): T {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...