76 lines
2.4 KiB
Plaintext
76 lines
2.4 KiB
Plaintext
|
==== tests/cases/compiler/superInLambdas.ts (4 errors) ====
|
||
|
class User {
|
||
|
name: string = "Bob";
|
||
|
sayHello(): void {
|
||
|
//console.log("Hello, " + this.name);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class RegisteredUser extends User {
|
||
|
name: string = "Frank";
|
||
|
constructor() {
|
||
|
super();
|
||
|
|
||
|
// super call in a constructor
|
||
|
super.sayHello();
|
||
|
|
||
|
// super call in a lambda in a constructor
|
||
|
var x = () => super.sayHello();
|
||
|
}
|
||
|
sayHello(): void {
|
||
|
// super call in a method
|
||
|
super.sayHello();
|
||
|
|
||
|
// super call in a lambda in a method
|
||
|
var x = () => super.sayHello();
|
||
|
}
|
||
|
}
|
||
|
class RegisteredUser2 extends User {
|
||
|
name: string = "Joe";
|
||
|
constructor() {
|
||
|
super();
|
||
|
|
||
|
// super call in a nested lambda in a constructor
|
||
|
var x = () => () => () => super.sayHello();
|
||
|
}
|
||
|
sayHello(): void {
|
||
|
// super call in a nested lambda in a method
|
||
|
var x = () => () => () => super.sayHello();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class RegisteredUser3 extends User {
|
||
|
name: string = "Sam";
|
||
|
constructor() {
|
||
|
super();
|
||
|
|
||
|
// super property in a nested lambda in a constructor
|
||
|
var superName = () => () => () => super.name;
|
||
|
~~~~
|
||
|
!!! Only public methods of the base class are accessible via the 'super' keyword
|
||
|
}
|
||
|
sayHello(): void {
|
||
|
// super property in a nested lambda in a method
|
||
|
var superName = () => () => () => super.name;
|
||
|
~~~~
|
||
|
!!! Only public methods of the base class are accessible via the 'super' keyword
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class RegisteredUser4 extends User {
|
||
|
name: string = "Mark";
|
||
|
constructor() {
|
||
|
super();
|
||
|
|
||
|
// super in a nested lambda in a constructor
|
||
|
var x = () => () => super;
|
||
|
~
|
||
|
!!! 'super' must be followed by argument list or member access.
|
||
|
}
|
||
|
sayHello(): void {
|
||
|
// super in a nested lambda in a method
|
||
|
var x = () => () => super;
|
||
|
~
|
||
|
!!! 'super' must be followed by argument list or member access.
|
||
|
}
|
||
|
}
|