TypeScript/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt

26 lines
1.3 KiB
Plaintext

==== tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts (2 errors) ====
interface I {
f: (a: { a: number }) => void
}
class X<T extends { a: string }> implements I {
~
!!! Class 'X<T>' incorrectly implements interface 'I':
!!! Types of property 'f' are incompatible:
!!! Type '(a: T) => void' is not assignable to type '(a: { a: number; }) => void':
!!! Types of parameters 'a' and 'a' are incompatible:
!!! Type 'T' is not assignable to type '{ a: number; }':
!!! Types of property 'a' are incompatible:
!!! Type 'string' is not assignable to type 'number'.
f(a: T): void { }
}
var x = new X<{ a: string }>();
var i: I = x; // Should not be allowed -- type of 'f' is incompatible with 'I'
~
!!! Type 'X<{ a: string; }>' is not assignable to type 'I':
!!! Types of property 'f' are incompatible:
!!! Type '(a: { a: string; }) => void' is not assignable to type '(a: { a: number; }) => void':
!!! Types of parameters 'a' and 'a' are incompatible:
!!! Type '{ a: string; }' is not assignable to type '{ a: number; }':
!!! Types of property 'a' are incompatible:
!!! Type 'string' is not assignable to type 'number'.