//// [infinitelyExpandingTypes4.ts] interface Query { // ... groupBy(keySelector: (item: T) => K): Query>; // ... } interface QueryEnumerator { // ... groupBy(keySelector: (item: T) => K): QueryEnumerator>; // ... } interface Grouping extends Query { key(): K; } var q1: Query; var q2: QueryEnumerator; var q3: Query; q1 = q2; // should error q1 = q3; // should not error //// [infinitelyExpandingTypes4.js] var q1; var q2; var q3; q1 = q2; q1 = q3;