, (, , ). , , :
interface A<T> {
bat: B<A<T>>;
}
interface B<T> extends A<T> {
bat: B<B<T>>;
boom: true
}
. , , Y X, A<Y> A<X> B<Y> B<X>. B<T> A<T>, , , , B<B<T>> B<A<T>>. , bat B B<A<T>> B<B<T>>.
, , ( ) B:
interface A<T> {
bat: B<A<T>>;
}
interface B<T> extends A<T> {
bat: B<B<T>>;
boom: T extends any ? true : true
}
. boom, , true, - . , , B<T> A<T>, , B<B<T>> B<A<T>>, B<B<B<T>>> B<B<A<T>>> ... , .
, - , ... , . , , B<T> A<T>, ( " ", , ).
, - , , GitHub. , .
, - . , .
!