Можно ли вывести тип, реализующий интерфейс Typescript для использования в интерфейсе? - PullRequest
0 голосов
/ 26 мая 2020

Допустим, у меня есть класс A, другой класс B и интерфейс I. Есть ли способ указать, что метод в интерфейсе I возвращает A, когда задан B в качестве входных данных, без передачи A через дженерики в I, но когда A реализует I.

Чтобы прояснить, я мог бы сделать следующее:

interface I<A, B> {
    method(b: B): A;
}

class A implements I<A, B> {
    ...
}

Однако я хотел бы вместо этого указать подпись класса A как class A implements I<B>. Возможно ли это, хотя по-прежнему требуется, чтобы I.method возвращал A? Я надеюсь, поскольку A реализует I, я смогу определить тип A.

...