1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
=== tests/cases/compiler/infinitelyExpandingTypes4.ts ===
interface Query<T> {
// ...
groupBy<K>(keySelector: (item: T) => K): Query<Grouping<K, T>>;
>groupBy : <K>(keySelector: (item: T) => K) => Query<Grouping<K, T>>
>keySelector : (item: T) => K
>item : T
// ...
}
interface QueryEnumerator<T> {
// ...
groupBy<K>(keySelector: (item: T) => K): QueryEnumerator<Grouping<K, T>>;
>groupBy : <K>(keySelector: (item: T) => K) => QueryEnumerator<Grouping<K, T>>
>keySelector : (item: T) => K
>item : T
// ...
}
interface Grouping<K, T> extends Query<T> {
key(): K;
>key : () => K
}
var q1: Query<number>;
>q1 : Query<number>
var q2: QueryEnumerator<number>;
>q2 : QueryEnumerator<number>
var q3: Query<number>;
>q3 : Query<number>
q1 = q2; // should error
>q1 = q2 : QueryEnumerator<number>
>q1 : Query<number>
>q2 : QueryEnumerator<number>
q1 = q3; // should not error
>q1 = q3 : Query<number>
>q1 : Query<number>
>q3 : Query<number>
|