File: classStaticBlock17.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (102 lines) | stat: -rw-r--r-- 2,062 bytes parent folder | download | duplicates (3)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts ===
let friendA: { getX(o: A): number, setX(o: A, v: number): void };
>friendA : { getX(o: A): number; setX(o: A, v: number): void; }
>getX : (o: A) => number
>o : A
>setX : (o: A, v: number) => void
>o : A
>v : number

class A {
>A : A

  #x: number;
>#x : number

  constructor (v: number) {
>v : number

    this.#x = v;
>this.#x = v : number
>this.#x : number
>this : this
>v : number
  }

  getX () {
>getX : () => number

    return this.#x;
>this.#x : number
>this : this
  }

  static {
    friendA = {
>friendA = {      getX(obj) { return obj.#x },      setX(obj, value) { obj.#x = value }    } : { getX(obj: A): number; setX(obj: A, value: number): void; }
>friendA : { getX(o: A): number; setX(o: A, v: number): void; }
>{      getX(obj) { return obj.#x },      setX(obj, value) { obj.#x = value }    } : { getX(obj: A): number; setX(obj: A, value: number): void; }

      getX(obj) { return obj.#x },
>getX : (obj: A) => number
>obj : A
>obj.#x : number
>obj : A

      setX(obj, value) { obj.#x = value }
>setX : (obj: A, value: number) => void
>obj : A
>value : number
>obj.#x = value : number
>obj.#x : number
>obj : A
>value : number

    };
  }
};

class B {
>B : B

  constructor(a: A) {
>a : A

    const x = friendA.getX(a); // ok
>x : number
>friendA.getX(a) : number
>friendA.getX : (o: A) => number
>friendA : { getX(o: A): number; setX(o: A, v: number): void; }
>getX : (o: A) => number
>a : A

    friendA.setX(a, x + 1); // ok
>friendA.setX(a, x + 1) : void
>friendA.setX : (o: A, v: number) => void
>friendA : { getX(o: A): number; setX(o: A, v: number): void; }
>setX : (o: A, v: number) => void
>a : A
>x + 1 : number
>x : number
>1 : 1
  }
};

const a = new A(41);
>a : A
>new A(41) : A
>A : typeof A
>41 : 41

const b = new B(a);
>b : B
>new B(a) : B
>B : typeof B
>a : A

a.getX();
>a.getX() : number
>a.getX : () => number
>a : A
>getX : () => number