32 lines
1 KiB
Plaintext
32 lines
1 KiB
Plaintext
==== tests/cases/compiler/typeParameterAssignmentCompat1.ts (4 errors) ====
|
|
interface Foo<T> {
|
|
frobble(value: T): T;
|
|
}
|
|
|
|
function f<T, U>(): Foo<U> {
|
|
var x: Foo<T>;
|
|
var y: Foo<U>;
|
|
x = y; // should be an error
|
|
~
|
|
!!! error TS2322: Type 'Foo<U>' is not assignable to type 'Foo<T>':
|
|
!!! error TS2322: Type 'U' is not assignable to type 'T'.
|
|
return x;
|
|
~
|
|
!!! error TS2322: Type 'Foo<T>' is not assignable to type 'Foo<U>':
|
|
!!! error TS2322: Type 'T' is not assignable to type 'U'.
|
|
}
|
|
|
|
class C<T> {
|
|
f<U>(): Foo<U> {
|
|
var x: Foo<T>;
|
|
var y: Foo<U>;
|
|
x = y; // should be an error
|
|
~
|
|
!!! error TS2322: Type 'Foo<U>' is not assignable to type 'Foo<T>':
|
|
!!! error TS2322: Type 'U' is not assignable to type 'T'.
|
|
return x;
|
|
~
|
|
!!! error TS2322: Type 'Foo<T>' is not assignable to type 'Foo<U>':
|
|
!!! error TS2322: Type 'T' is not assignable to type 'U'.
|
|
}
|
|
} |