26 lines
No EOL
1.3 KiB
Text
26 lines
No EOL
1.3 KiB
Text
==== 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'.
|
|
|