class Bar { public goo: number; public prop1(x) { return x; } constructor (n) { } } // new-style class class Foo extends Bar { foo:number; gar = 0; zoo:string = "zoo"; x: any; bar() { return 0; } private boo(); private boo(x?) { return x; } static statVal = 0; constructor(); constructor(x?, private y?:string, public z?=0) { super(x); this.x = x; this.gar = 5; } } var f = new Foo(); declare module AmbientMod { export class Provide { foo:number; zoo:string; constructor(); private boo(); bar(); } } //class GetSetMonster { // // attack(target) { // // WScript.Echo("Attacks " + target); // // } // // The contextual keyword "get" followed by an identifier and // // a curly body defines a getter in the same way that "get" // // defines one in an object literal. // // get isAlive() { // // return this.health > 0; // // } // // Likewise, "set" can be used to define setters. // set health(value:number) { // if (value < 0) { // throw new Error('Health must be non-negative.') // } // this.health = value // } // get health() { return 0; } // constructor(this.name: string, health: number) { // this.health = 0; // } //} //class bar { // static fnOverload( ); // static fnOverload(foo: string){ } // no error // constructor(){}; //}