-
Notifications
You must be signed in to change notification settings - Fork 12.9k
Open
Labels
Effort: DifficultGood luck.Good luck.Help WantedYou can do thisYou can do thisSuggestionAn idea for TypeScriptAn idea for TypeScript
Milestone
Description
TypeScript Version:
1.8.9
Code
JSFiddle: https://jsfiddle.net/kitsonk/fs9t96ep/
TS Playground: http://goo.gl/X7cgvV
class A {
constructor(fn: () => void) {
fn.call(this);
}
foo: string = 'foo';
}
class B extends A {
constructor() {
super(() => {
console.log(this);
});
}
bar: string = 'bar';
}
const b = new B();
Expected behavior:
Typescript should guard against the use of this
as the call to super
has not completed. Thus it should not compile.
Actual behavior:
Typescript compiles this successfully. It works fine when the target is set to es5
but breaks the browser when target is set to es6
.
Error is: VM89:55 Uncaught ReferenceError: this is not defined
Metadata
Metadata
Assignees
Labels
Effort: DifficultGood luck.Good luck.Help WantedYou can do thisYou can do thisSuggestionAn idea for TypeScriptAn idea for TypeScript