Почему я не могу использовать эту внутреннюю функцию? - PullRequest
0 голосов
/ 18 апреля 2019

Код:

const f: any = function(...args: any[]) {
    const a = this;
};

Ошибка:

semantic error TS2683 'this' implicitly has type 'any' because it does not have a type annotation.

1 Ответ

2 голосов
/ 18 апреля 2019

У вас включена опция компилятора noImplicitThis, а в новом выражении f функция this неявно имеет тип any - отсюда и ошибка.

Чтобы исправить это - просто укажите тип явноиспользуя «фальшивый» this параметр :

const f: any = function(this: typeof target, ...args: any[]) {
    // ...
};

По умолчанию тип этой функции внутри любой.Начиная с TypeScript 2.0, вы можете явно указать этот параметр.эти параметры являются поддельными параметрами, которые стоят первыми в списке параметров функции

...