42 lines
No EOL
1.7 KiB
Text
42 lines
No EOL
1.7 KiB
Text
tests/cases/compiler/typeParameterAssignmentCompat1.ts(8,5): error TS2322: Type 'Foo<U>' is not assignable to type 'Foo<T>'.
|
|
Type 'U' is not assignable to type 'T'.
|
|
tests/cases/compiler/typeParameterAssignmentCompat1.ts(9,12): error TS2322: Type 'Foo<T>' is not assignable to type 'Foo<U>'.
|
|
Type 'T' is not assignable to type 'U'.
|
|
tests/cases/compiler/typeParameterAssignmentCompat1.ts(16,9): error TS2322: Type 'Foo<U>' is not assignable to type 'Foo<T>'.
|
|
Type 'U' is not assignable to type 'T'.
|
|
tests/cases/compiler/typeParameterAssignmentCompat1.ts(17,16): error TS2322: Type 'Foo<T>' is not assignable to type 'Foo<U>'.
|
|
Type 'T' is not assignable to type 'U'.
|
|
|
|
|
|
==== 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'.
|
|
}
|
|
} |