Допустим, у меня есть класс 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
.