tests/cases/compiler/es6ClassTest2.ts(30,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/es6ClassTest2.ts(35,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/es6ClassTest2.ts(17,1): error TS2304: Cannot find name 'console'. ==== tests/cases/compiler/es6ClassTest2.ts (3 errors) ==== class BasicMonster { constructor(public name: string, public health: number) { } attack(target) { // WScript.Echo("Attacks " + target); } isAlive = true; } var m1 = new BasicMonster("1", 100); var m2 = new BasicMonster("2", 100); m1.attack(m2); m1.health = 0; console.log((m5.isAlive).toString()); ~~~~~~~ !!! error TS2304: Cannot find name 'console'. class GetSetMonster { constructor(public name: string, private _health: number) { } 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() { ~~~~~~~ !!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. return this._health > 0; } // Likewise, "set" can be used to define setters. set health(value: number) { ~~~~~~ !!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. if (value < 0) { throw new Error('Health must be non-negative.') } this._health = value } } var m3 = new BasicMonster("1", 100); var m4 = new BasicMonster("2", 100); m3.attack(m4); m3.health = 0; var x = (m5.isAlive).toString() class OverloadedMonster { constructor(name: string); constructor(public name: string, public health?: number) { } attack(); attack(a: any); attack(target?) { //WScript.Echo("Attacks " + target); } isAlive = true; } var m5 = new OverloadedMonster("1"); var m6 = new OverloadedMonster("2"); m5.attack(m6); m5.health = 0; var y = (m5.isAlive).toString() class SplatMonster { constructor(...args: string[]) { } roar(name: string, ...args: number[]) { } } function foo() { return true; } class PrototypeMonster { age: number = 1; name: string; b = foo(); } class SuperParent { constructor(a: number) { } b(b: string) { } c() { } } class SuperChild extends SuperParent { constructor() { super(1); } b() { super.b('str'); } c() { super.c(); } } class Statics { static foo = 1; static bar: string; static baz() { return ""; } } var stat = new Statics(); interface IFoo { x: number; z: string; } class ImplementsInterface implements IFoo { public x: number; public z: string; constructor() { this.x = 1; this.z = "foo"; } } class Visibility { public foo() { } private bar() { } private x: number; public y: number; public z: number; constructor() { this.x = 1; this.y = 2; } } class BaseClassWithConstructor { constructor(public x: number, public s: string) { } } // used to test codegen class ChildClassWithoutConstructor extends BaseClassWithConstructor { } var ccwc = new ChildClassWithoutConstructor(1, "s");