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
|
=== tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility3.ts ===
class Foo {
>Foo : Foo
constructor(public x: number) { }
>x : number
}
class Bar {
>Bar : Bar
public constructor(public x: number) { }
>x : number
}
class Baz {
>Baz : Baz
protected constructor(public x: number) { }
>x : number
}
class Qux {
>Qux : Qux
private constructor(public x: number) { }
>x : number
}
// b is public
let a = Foo;
>a : typeof Foo
>Foo : typeof Foo
a = Bar;
>a = Bar : typeof Bar
>a : typeof Foo
>Bar : typeof Bar
a = Baz; // error Baz is protected
>a = Baz : typeof Baz
>a : typeof Foo
>Baz : typeof Baz
a = Qux; // error Qux is private
>a = Qux : typeof Qux
>a : typeof Foo
>Qux : typeof Qux
// b is protected
let b = Baz;
>b : typeof Baz
>Baz : typeof Baz
b = Foo;
>b = Foo : typeof Foo
>b : typeof Baz
>Foo : typeof Foo
b = Bar;
>b = Bar : typeof Bar
>b : typeof Baz
>Bar : typeof Bar
b = Qux; // error Qux is private
>b = Qux : typeof Qux
>b : typeof Baz
>Qux : typeof Qux
// c is private
let c = Qux;
>c : typeof Qux
>Qux : typeof Qux
c = Foo;
>c = Foo : typeof Foo
>c : typeof Qux
>Foo : typeof Foo
c = Bar;
>c = Bar : typeof Bar
>c : typeof Qux
>Bar : typeof Bar
c = Baz;
>c = Baz : typeof Baz
>c : typeof Qux
>Baz : typeof Baz
|