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
|
//// [classConstructorAccessibility3.ts]
class Foo {
constructor(public x: number) { }
}
class Bar {
public constructor(public x: number) { }
}
class Baz {
protected constructor(public x: number) { }
}
class Qux {
private constructor(public x: number) { }
}
// b is public
let a = Foo;
a = Bar;
a = Baz; // error Baz is protected
a = Qux; // error Qux is private
// b is protected
let b = Baz;
b = Foo;
b = Bar;
b = Qux; // error Qux is private
// c is private
let c = Qux;
c = Foo;
c = Bar;
c = Baz;
//// [classConstructorAccessibility3.js]
var Foo = /** @class */ (function () {
function Foo(x) {
this.x = x;
}
return Foo;
}());
var Bar = /** @class */ (function () {
function Bar(x) {
this.x = x;
}
return Bar;
}());
var Baz = /** @class */ (function () {
function Baz(x) {
this.x = x;
}
return Baz;
}());
var Qux = /** @class */ (function () {
function Qux(x) {
this.x = x;
}
return Qux;
}());
// b is public
var a = Foo;
a = Bar;
a = Baz; // error Baz is protected
a = Qux; // error Qux is private
// b is protected
var b = Baz;
b = Foo;
b = Bar;
b = Qux; // error Qux is private
// c is private
var c = Qux;
c = Foo;
c = Bar;
c = Baz;
//// [classConstructorAccessibility3.d.ts]
declare class Foo {
x: number;
constructor(x: number);
}
declare class Bar {
x: number;
constructor(x: number);
}
declare class Baz {
x: number;
protected constructor(x: number);
}
declare class Qux {
x: number;
private constructor();
}
declare let a: typeof Foo;
declare let b: typeof Baz;
declare let c: typeof Qux;
|