File: covariance1.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (36 lines) | stat: -rw-r--r-- 639 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//// [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 = /** @class */ (function () {
        function XX(m1) {
            this.m1 = m1;
        }
        return XX;
    }());
    M.XX = XX;
    function f(y) { }
    M.f = f;
    var a;
    f({ x: a }); // ok
    var b;
    f({ x: b }); // ok covariant subtype
})(M || (M = {}));