#typescript #typescript-decorator
#typescript #typescript-декоратор
Вопрос:
Код:
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. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
2. @ritaj этого нет в функции со стрелкой…
Ответ №1:
У вас noImplicitThis
включена опция компилятора, и в новой f
функции this
выражение неявно имеет тип any
— отсюда и ошибка.
Чтобы исправить это — просто укажите тип явно, используя параметр «fake» this
:
const f: any = function(this: typeof target, ...args: any[]) {
// ...
};
По умолчанию тип this внутри функции — any . Начиная с TypeScript 2.0, вы можете указать явный параметр this . эти параметры являются поддельными параметрами, которые идут первыми в списке параметров функции