groog
@groog
Я только учусь

Как правильно оформить вычисляемые свойства с TS, чтобы линтер не ругался?

Есть вычисляемое свойство с геттером и сеттером, которые не понимают что такое this. Сам код работает корректно

Ошибка
5fcaa0dcab3fc527241195.png

Код
import Vue from "vue"
  import { mapMutations } from "vuex";

  export default Vue.extend({
    name: "v-component",
    props: {
      text: {
        type: String
      }
    },
    computed: {
      computedProperty: {
        get(): string {
          return this.text;
        },
        set(value) {
          this.someMethod(value);
        }
      }
    },
    methods: {
      ...mapMutations({
        someMethod: "SOME_METHOD"
      })
    }
  })
  • Вопрос задан
  • 348 просмотров
Решения вопроса 1
alexk111
@alexk111
Автор Ботодрома (автоматизация Telegram, VK и др.)
Задайте явное определение "this" для геттера/сеттера. Это делается первым "this" параметром сигнатуры функции. Параметр в данном случае фэйковый, то есть используется только для определения типа "this". Например:

get(this: {text: string}): string {
   return this.text;
},
set(this: {someMethod: (value: string) => void}, value: string) {
   this.someMethod(value);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы