Задать вопрос

Как использовать this в стрелочной функции в typescript?

Пытаюсь использовать this в стрелочной функции, предварительно указав тип для this.
Получаю ошибку: An arrow function cannot have a 'this' parameter.ts(2730)
5e2f1774e70d9070822112.png

Судя по данному PR ( https://github.com/Microsoft/TypeScript/pull/6739 ) в typescript можно использовать this в стрелочных функциях таким образом. В интернете нет абсолютно никаких намёков на объяснение ошибки TS2730. В общем я в недоумение.
  • Вопрос задан
  • 387 просмотров
Подписаться 1 Сложный Комментировать
Решения вопроса 2
Xuxicheta
@Xuxicheta
инженер
Судя по данному PR в typescript можно использовать this в стрелочных функциях

эм.. я может не туда смотрю, но там написано как раз что это бессмысленно. И ни одного примера типизации this в стрелочных нет.
This formulation is OK because lambda (=>) doesn't bind this, so this comes from the class instead of from the implementing function.


А вообще можно объявив сначала тип для функции, вот так
https://www.typescriptlang.org/play/?noImplicitThi...
Но оно тоже работает криво.
А зачем вам вообще это понадобилось?
Ответ написан
Aetae
@Aetae Куратор тега TypeScript
Тлен
Бессмысленно указывать тип this для стрелочной функции, потому что ts сам его прекрасно видит - там тупо не может быть никаких вариантов и разночтений: this для стрелочной функции задаётся прямо на месте её создания и принимать никаких иных значений не может.
В PR вы попутали, там this используется не в стрелочной функции, а в типе свойства.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы