@typescript-eslint/no-invalid-this
просто не поддерживает this
в свойствах класса.
Правило расширения было добавлено в проект относительно недавно. В то время автор работал над необходимой им функцией, которая заключалась в поддержке this
args.
Как проект, поддерживаемый сообществом, мы полагаемся на поддержку сообщества, которая поможет нам добавить правила, функции и исправлять ошибки. Если кто-то хочет решить эту проблему - пожалуйста, отправьте PR - я считаю, что на самом деле это должно быть относительно простое исправление.
Соответствующая проблема на github: https://github.com/typescript-eslint/typescript-eslint/issues/491
В стороне, вероятно, возникает вопрос: «Почему это не было исправлено больше года!?»
Две причины:
- Когда у вас есть
noImplicitThis
включен параметр компилятора, сам TypeScript выдаст ошибку компилятора, если вы используете недопустимый this
. Поскольку он обрабатывается непосредственно TS, подавляющее большинство пользователей не чувствуют необходимости дублировать ошибку с помощью пуха. rule. - Не многие пользователи используют
this
в свойствах класса, что означает, что пользователи вряд ли столкнутся с этой проблемой с самого начала. Некоторым пользователям не нравится этот стиль свойств, но я считаю, что большинство пользователей на самом деле не знают, что это действительно так.
Объединение этих двух параметров - немногие пользователи используют правило lint, и меньше пользователей по-прежнему используют this
в свойствах класса, поэтому не было достаточно людей, чтобы мотивировать сообщество исправить это.