//// [infinitelyExpandingTypes3.ts] interface List { data: T; next: List; // will be recursive reference when OwnerList is expanded owner: OwnerList; } interface OwnerList extends List> { name: string; } interface OwnerList2 extends List> { name: string; } var o1: OwnerList; var o2: OwnerList2; o1 = o2; // should not error //// [infinitelyExpandingTypes3.js] var o1; var o2; o1 = o2;