Класс TypeScript, свойство доступа в функции

#typescript #vue.js #class

Вопрос:

Я пытаюсь создать класс в Vue, который использует функцию наблюдения из Vue. Я хочу передать идентификатор местоположения из конструктора. Но это не работает … как я могу получить доступ к идентификатору?

 import { watch } from 'vue';
import type { ComputedRef } from "vue";

export class DateWatcher {
  // true/false
  dateChange: ComputedRef;
  // 123456789
  locationId: string | string[];

  constructor(dateChange: ComputedRef, locationId: string | string[]) {
    this.dateChange = dateChange;
    this.locationId = locationId;
  }

  watchFunction(): void {
    console.log(`I watch ${this.dateChange}`);
    console.log(this.locationId);
    
    const id = this.locationId;

    watch(this.dateChange, function () {
      console.log('Changed');
      
      console.log('locationId');
      console.log(this.locationId);
    });
  }
}
 

Я называю это из свойства Vue:

  const dateWatcher = new DateWatcher(dateChange, locationId)
    dateWatcher.watch()