1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
tests/cases/compiler/noImplicitThisFunctions.ts(13,12): error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
tests/cases/compiler/noImplicitThisFunctions.ts(17,38): error TS7041: The containing arrow function captures the global value of 'this'.
tests/cases/compiler/noImplicitThisFunctions.ts(18,22): error TS7041: The containing arrow function captures the global value of 'this'.
tests/cases/compiler/noImplicitThisFunctions.ts(20,36): error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
tests/cases/compiler/noImplicitThisFunctions.ts(21,50): error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
==== tests/cases/compiler/noImplicitThisFunctions.ts (5 errors) ====
function f1(x) {
// implicit any is still allowed
return x + 1;
}
function f2(y: number) {
// ok: no reference to this
return y + 1;
}
function f3(z: number): number {
// error: this is implicitly any
return this.a + z;
~~~~
!!! error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
}
// error: `this` is `window`, but is still of type `any`
let f4: (b: number) => number = b => this.c + b;
~~~~
!!! error TS7041: The containing arrow function captures the global value of 'this'.
let f5 = () => () => this;
~~~~
!!! error TS7041: The containing arrow function captures the global value of 'this'.
let f6 = function() { return () => this; };
~~~~
!!! error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
let f7 = function() { return function() { return this } };
~~~~
!!! error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
|