TypeScript/tests/baselines/reference/es6ClassTest.js
2020-12-01 19:03:49 -05:00

158 lines
3.7 KiB
TypeScript

//// [es6ClassTest.ts]
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(){};
//}
//// [es6ClassTest.js]
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var Bar = /** @class */ (function () {
function Bar(n) {
}
Bar.prototype.prop1 = function (x) {
return x;
};
return Bar;
}());
// new-style class
var Foo = /** @class */ (function (_super) {
__extends(Foo, _super);
function Foo(x, y, z) {
if (z === void 0) { z = 0; }
var _this = _super.call(this, x) || this;
_this.y = y;
_this.z = z;
_this.gar = 0;
_this.zoo = "zoo";
_this.x = x;
_this.gar = 5;
return _this;
}
Foo.prototype.bar = function () { return 0; };
Foo.prototype.boo = function (x) { return x; };
Foo.statVal = 0;
return Foo;
}(Bar));
var f = new Foo();
//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(){};
//}