//// [typeQueryOnClass.ts] class C { constructor(x: number); constructor(x: string); constructor(public x) { } static foo(x: number); static foo(x: {}); static foo(x) { } static bar(x) { } static sa = 1; static sb = () => 1; static get sc() { return 1; } static set sc(x) { } static get sd() { return 1; } baz(x): string { return ''; } ia = 1; ib = () => this.ia; get ic() { return 1; } set ic(x) { } get id() { return 1; } } var c: C; // BUG 820454 var r1: typeof C; var r2: typeof c; class D { constructor(public y?) { } x: T; foo() { } } var d: D; var r3: typeof D; var r4: typeof d; //// [typeQueryOnClass.js] var C = (function () { function C(x) { var _this = this; this.x = x; this.ia = 1; this.ib = function () { return _this.ia; }; } C.foo = function (x) { }; C.bar = function (x) { }; Object.defineProperty(C, "sc", { get: function () { return 1; }, set: function (x) { }, enumerable: true, configurable: true }); Object.defineProperty(C, "sd", { get: function () { return 1; }, enumerable: true, configurable: true }); C.prototype.baz = function (x) { return ''; }; Object.defineProperty(C.prototype, "ic", { get: function () { return 1; }, set: function (x) { }, enumerable: true, configurable: true }); Object.defineProperty(C.prototype, "id", { get: function () { return 1; }, enumerable: true, configurable: true }); C.sa = 1; C.sb = function () { return 1; }; return C; })(); var c; // BUG 820454 var r1; var r2; var D = (function () { function D(y) { this.y = y; } D.prototype.foo = function () { }; return D; })(); var d; var r3; var r4;