Как использовать объект данных в VueJS при использовании декораторов?Msgstr "Предполагается, что this будет использоваться методом класса data." - PullRequest
1 голос
/ 28 марта 2019

Ошибка> Ожидается, что «this» будет использоваться методом класса «data».

Я нашел это и подумал, что у меня это правильно: TypeScript Неожиданный токен, Конструктор, метод,ожидаемый объект доступа или свойство

<script lang="ts">
import { Component, Prop, Vue } from 'vue-property-decorator'
import { MOON_HOLDINGS_LINK, TWITTER_LINK } from '@/constants/links'

@Component
export default class HelloWorld extends Vue {
  @Prop() private title!: string

  data(): any {
    return {
      moonLink: MOON_HOLDINGS_LINK,
    }
  }
}
</script>

enter image description here

1 Ответ

2 голосов
/ 29 марта 2019

Это связано с правилом class-method-use-this ESLint.

Но data() не нужно использовать this (только в очень редких ситуациях).

Таким образом, вам, вероятно, следует отключить предупреждение для этого конкретного метода, так как я считаю, data() соответствует сценарию, описанному ESLint как возможное исключение из этого правила :

Например, у вас может быть спецификация из внешней библиотеки, которая требует, чтобы вы перезаписывали метод как обычную функцию (а не как статический метод) и не использовали this внутри тела функции.

Так вы бы использовали:

/*eslint class-methods-use-this: ["error", { "exceptMethods": ["data"] }] */
* * Пример тысяча двадцать-один: * * 1 022
<script lang="ts">
import { Component, Prop, Vue } from 'vue-property-decorator'
import { MOON_HOLDINGS_LINK, TWITTER_LINK } from '@/constants/links'

@Component
export default class HelloWorld extends Vue {
  @Prop() private title!: string

  /*eslint class-methods-use-this: ["error", { "exceptMethods": ["data"] }] */
  data(): any {
    return {
      moonLink: MOON_HOLDINGS_LINK,
    }
  }
}
</script>
...