File: privateVisibility.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (84 lines) | stat: -rw-r--r-- 1,292 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
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
=== tests/cases/compiler/privateVisibility.ts ===
class Foo {
>Foo : Foo

	public pubMeth() {this.privMeth();}
>pubMeth : () => void
>this.privMeth() : void
>this.privMeth : () => void
>this : this
>privMeth : () => void

	private privMeth() {}
>privMeth : () => void

	public pubProp = 0;
>pubProp : number
>0 : 0

	private privProp = 0;
>privProp : number
>0 : 0
}

var f = new Foo();
>f : Foo
>new Foo() : Foo
>Foo : typeof Foo

f.privMeth(); // should not work
>f.privMeth() : void
>f.privMeth : () => void
>f : Foo
>privMeth : () => void

f.privProp; // should not work
>f.privProp : number
>f : Foo
>privProp : number

f.pubMeth(); // should work
>f.pubMeth() : void
>f.pubMeth : () => void
>f : Foo
>pubMeth : () => void

f.pubProp; // should work
>f.pubProp : number
>f : Foo
>pubProp : number

module M {
>M : typeof M

    export class C { public pub = 0; private priv = 1; }
>C : C
>pub : number
>0 : 0
>priv : number
>1 : 1

    export var V = 0;
>V : number
>0 : 0
}


var c = new M.C();
>c : M.C
>new M.C() : M.C
>M.C : typeof M.C
>M : typeof M
>C : typeof M.C

c.pub; // should work
>c.pub : number
>c : M.C
>pub : number

c.priv; // should not work
>c.priv : number
>c : M.C
>priv : number