TypeScript/tests/baselines/reference/genericImplements.js

57 lines
1.1 KiB
TypeScript
Raw Normal View History

2014-07-13 01:04:16 +02:00
//// [genericImplements.ts]
class A { a; };
class B { b; };
interface I {
f<T extends A>(): T;
} // { f: () => { a; } }
// OK
class X implements I {
f<T extends B>(): T { return undefined; }
} // { f: () => { b; } }
// OK
class Y implements I {
f<T extends A>(): T { return undefined; }
} // { f: () => { a; } }
// OK
class Z implements I {
f<T>(): T { return undefined; }
} // { f: <T>() => T }
//// [genericImplements.js]
var A = (function () {
function A() {
}
return A;
})();
;
var B = (function () {
function B() {
}
return B;
})();
;
// OK
2014-07-13 01:04:16 +02:00
var X = (function () {
function X() {
}
X.prototype.f = function () { return undefined; };
2014-07-13 01:04:16 +02:00
return X;
})(); // { f: () => { b; } }
// OK
2014-07-13 01:04:16 +02:00
var Y = (function () {
function Y() {
}
Y.prototype.f = function () { return undefined; };
2014-07-13 01:04:16 +02:00
return Y;
})(); // { f: () => { a; } }
// OK
2014-07-13 01:04:16 +02:00
var Z = (function () {
function Z() {
}
Z.prototype.f = function () { return undefined; };
2014-07-13 01:04:16 +02:00
return Z;
})(); // { f: <T>() => T }