Единственный случай, когда получатели свойств могут обрабатываться линтерами, это когда они потенциально не работают, есть TSLint / ESLint no-unused-expression
rule :
this.isBrowser; // causes linter error
Этослучай с утверждениями Чая.В любом другом случае this.isBrowser
не является запретом.
if (this.isBrowser)
является допустимым фрагментом кода, который проверяет, что isBrowser
член верен.Это может быть допустимо для метода, if (this.isBrowser) this.isBrowser()
.
Чтобы решить эту проблему с помощью TypeScript, не ленитесь об условиях
if (this.isBrowser === true && this.imageURL) {.....}
Это приведет к ошибке типа, если isBrowser
- это функция.
Это проблема, которая может возникнуть из-за неопределенного стиля кода.Если метод, который проверяет, является ли это браузер, называется isBrowser
, как тогда будет вызываться логическое свойство?Тот факт, что метод и свойство могут быть перепутаны и не могут сосуществовать, говорит о том, что метод, который возвращает логическое значение, может иметь различное имя, например, getIsBrowser
, тогда как isBrowser
зарезервировано для логического значения.