TypeScript/tests/baselines/reference/covariance1.js
2014-07-12 17:30:19 -07:00

38 lines
600 B
JavaScript

//// [covariance1.ts]
module M {
interface X { m1:number; }
export class XX implements X { constructor(public m1:number) { } }
interface Y { x:X; }
export function f(y:Y) { }
var a:X;
f({x:a}); // ok
var b:XX;
f({x:b}); // ok covariant subtype
}
//// [covariance1.js]
var M;
(function (M) {
var XX = (function () {
function XX(m1) {
this.m1 = m1;
}
return XX;
})();
M.XX = XX;
function f(y) {
}
M.f = f;
var a;
f({ x: a });
var b;
f({ x: b });
})(M || (M = {}));