2014-07-13 01:04:16 +02:00
|
|
|
==== tests/cases/conformance/types/typeParameters/typeArgumentLists/wrappedAndRecursiveConstraints4.ts (1 errors) ====
|
|
|
|
class C<T extends { length: number }> {
|
|
|
|
constructor(x: T) { }
|
|
|
|
foo<U extends T>(x: U) {
|
|
|
|
function bar<V extends U>(x: V) {
|
|
|
|
return x;
|
|
|
|
}
|
|
|
|
return bar;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var c = new C({ length: 2 });
|
|
|
|
var r = c.foo('');
|
|
|
|
var r2 = r({ length: 3, charAt: (x: number) => { '' } }); // error
|
2014-07-25 02:00:03 +02:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2014-07-25 04:39:50 +02:00
|
|
|
!!! Argument of type '{ length: number; charAt: (x: number) => void; }' is not assignable to parameter of type 'string'.
|