114 lines
3.4 KiB
JavaScript
114 lines
3.4 KiB
JavaScript
//// [superErrors.ts]
|
|
function foo() {
|
|
// super in a non class context
|
|
var x = super;
|
|
var y = () => super;
|
|
var z = () => () => () => super;
|
|
}
|
|
|
|
class User {
|
|
name: string = "Bob";
|
|
sayHello(): void {
|
|
//console.log("Hello, " + this.name);
|
|
}
|
|
}
|
|
|
|
class RegisteredUser extends User {
|
|
name: string = "Frank";
|
|
constructor() {
|
|
super();
|
|
|
|
// super call in an inner function in a constructor
|
|
function inner() {
|
|
super.sayHello();
|
|
}
|
|
|
|
// super call in a lambda in an inner function in a constructor
|
|
function inner2() {
|
|
var x = () => super.sayHello();
|
|
}
|
|
|
|
// super call in a lambda in a function expression in a constructor
|
|
(function() { return () => super; })();
|
|
}
|
|
sayHello(): void {
|
|
// super call in a method
|
|
super.sayHello();
|
|
|
|
// super call in a lambda in an inner function in a method
|
|
function inner() {
|
|
var x = () => super.sayHello();
|
|
}
|
|
|
|
// super call in a lambda in a function expression in a constructor
|
|
(function() { return () => super; })();
|
|
}
|
|
static staticFunction(): void {
|
|
// super in static functions
|
|
var s = super;
|
|
var x = () => super;
|
|
var y = () => () => () => super;
|
|
}
|
|
}
|
|
|
|
//// [superErrors.js]
|
|
var __extends = this.__extends || function (d, b) {
|
|
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
|
function __() { this.constructor = d; }
|
|
__.prototype = b.prototype;
|
|
d.prototype = new __();
|
|
};
|
|
function foo() {
|
|
// super in a non class context
|
|
var x = super.;
|
|
var y = function () { return super.; };
|
|
var z = function () { return function () { return function () { return super.; }; }; };
|
|
}
|
|
var User = (function () {
|
|
function User() {
|
|
this.name = "Bob";
|
|
}
|
|
User.prototype.sayHello = function () {
|
|
//console.log("Hello, " + this.name);
|
|
};
|
|
return User;
|
|
})();
|
|
var RegisteredUser = (function (_super) {
|
|
__extends(RegisteredUser, _super);
|
|
function RegisteredUser() {
|
|
_super.call(this);
|
|
this.name = "Frank";
|
|
// super call in an inner function in a constructor
|
|
function inner() {
|
|
super.sayHello.call(this);
|
|
}
|
|
// super call in a lambda in an inner function in a constructor
|
|
function inner2() {
|
|
var x = function () { return super.sayHello.call(this); };
|
|
}
|
|
// super call in a lambda in a function expression in a constructor
|
|
(function () {
|
|
return function () { return super.; };
|
|
})();
|
|
}
|
|
RegisteredUser.prototype.sayHello = function () {
|
|
// super call in a method
|
|
_super.prototype.sayHello.call(this);
|
|
// super call in a lambda in an inner function in a method
|
|
function inner() {
|
|
var x = function () { return super.sayHello.call(this); };
|
|
}
|
|
// super call in a lambda in a function expression in a constructor
|
|
(function () {
|
|
return function () { return super.; };
|
|
})();
|
|
};
|
|
RegisteredUser.staticFunction = function () {
|
|
var _this = this;
|
|
// super in static functions
|
|
var s = _super.;
|
|
var x = function () { return _super.; };
|
|
var y = function () { return function () { return function () { return _super.; }; }; };
|
|
};
|
|
return RegisteredUser;
|
|
})(User);
|