36 lines
1.6 KiB
Plaintext
36 lines
1.6 KiB
Plaintext
tests/cases/compiler/classMemberInitializerWithLamdaScoping.ts(23,21): error TS2301: Initializer of instance member variable 'messageHandler' cannot reference identifier 'field1' declared in the constructor.
|
|
|
|
|
|
==== tests/cases/compiler/classMemberInitializerWithLamdaScoping.ts (1 errors) ====
|
|
declare var console: {
|
|
log(msg?: any): void;
|
|
};
|
|
class Test {
|
|
constructor(private field: string) {
|
|
}
|
|
messageHandler = () => {
|
|
var field = this.field;
|
|
console.log(field); // Using field here shouldnt be error
|
|
};
|
|
static field: number;
|
|
static staticMessageHandler = () => {
|
|
var field = Test.field;
|
|
console.log(field); // Using field here shouldnt be error
|
|
};
|
|
}
|
|
|
|
var field1: string;
|
|
class Test1 {
|
|
constructor(private field1: string) {
|
|
}
|
|
messageHandler = () => {
|
|
console.log(field1); // But this should be error as the field1 will resolve to var field1
|
|
~~~~~~
|
|
!!! error TS2301: Initializer of instance member variable 'messageHandler' cannot reference identifier 'field1' declared in the constructor.
|
|
// but since this code would be generated inside constructor, in generated js
|
|
// it would resolve to private field1 and thats not what user intended here.
|
|
};
|
|
static staticMessageHandler = () => {
|
|
console.log(field1); // This shouldnt be error as its a static property
|
|
};
|
|
} |