2014-08-15 23:33:16 +02:00
|
|
|
=== tests/cases/compiler/transitiveTypeArgumentInference1.ts ===
|
|
|
|
interface I1<T, U> {
|
2015-04-16 01:44:20 +02:00
|
|
|
>I1 : I1<T, U>
|
|
|
|
>T : T
|
|
|
|
>U : U
|
2014-08-15 23:33:16 +02:00
|
|
|
|
|
|
|
m(value: T): U;
|
2015-04-16 01:44:20 +02:00
|
|
|
>m : (value: T) => U
|
|
|
|
>value : T
|
|
|
|
>T : T
|
|
|
|
>U : U
|
2014-08-15 23:33:16 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
var i: I1<boolean, string> = null;
|
2015-04-16 01:44:20 +02:00
|
|
|
>i : I1<boolean, string>
|
|
|
|
>I1 : I1<T, U>
|
2015-04-13 21:36:11 +02:00
|
|
|
>null : null
|
2014-08-15 23:33:16 +02:00
|
|
|
|
|
|
|
class C<T> {
|
2015-04-16 01:44:20 +02:00
|
|
|
>C : C<T>
|
|
|
|
>T : T
|
2014-08-15 23:33:16 +02:00
|
|
|
|
|
|
|
constructor(p: I1<boolean, T>) {
|
2015-04-16 01:44:20 +02:00
|
|
|
>p : I1<boolean, T>
|
|
|
|
>I1 : I1<T, U>
|
|
|
|
>T : T
|
2014-08-15 23:33:16 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var c = new C(i);
|
2015-04-16 01:44:20 +02:00
|
|
|
>c : C<string>
|
2014-08-15 23:33:16 +02:00
|
|
|
>new C(i) : C<string>
|
2015-04-16 01:44:20 +02:00
|
|
|
>C : typeof C
|
|
|
|
>i : I1<boolean, string>
|
2014-08-15 23:33:16 +02:00
|
|
|
|