//// [staticVisibility.ts] class C1 { p: any; static s: any; constructor() { var v = 0; s = 1; // should be error C1.s = 1; // should be ok b(); // should be error C1.b(); // should be ok } static b() { v = 1; // should be error this.p = 0; // should be error C1.s = 1; // should be ok } } class C2 { barback:string = ""; static get Bar() {return "bar";} // ok static set Bar(bar:string) {barback = bar;} // not ok } //// [staticVisibility.js] var C1 = (function () { function C1() { var v = 0; s = 1; // should be error C1.s = 1; // should be ok b(); // should be error C1.b(); // should be ok } C1.b = function () { v = 1; // should be error this.p = 0; // should be error C1.s = 1; // should be ok }; return C1; })(); var C2 = (function () { function C2() { this.barback = ""; } Object.defineProperty(C2, "Bar", { get: function () { return "bar"; } // ok , set: function (bar) { barback = bar; } // not ok , enumerable: true, configurable: true }); return C2; })();