TypeScript/tests/baselines/reference/es6ClassTest2.errors.txt
Cyrus Najmabadi f1a2e41a8a Sort diagnostics in our baseline output.
This was we don't get noisy baselines just because a different phase of the compiler reported
the diagnostic.

This helps with Yui's refactoring work to move grammar checks into the type checker.
2014-12-16 15:56:56 -08:00

170 lines
4.1 KiB
Plaintext

tests/cases/compiler/es6ClassTest2.ts(17,1): error TS2304: Cannot find name 'console'.
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 (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((<any>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 = (<any>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 = (<any>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");