I Typescript, hur man får åtkomst till medlemmar utanför en "anonym" klass


Jag skapade en "anonym" klass baserad på detta: Typescript anonym klass

Men jag vet inte hur man får åtkomst till medlemmarna i det yttre omfånget. Här är ett exempel på kod:

class BaseCounter {
  counter = 1;

  count() {
    console.log(++this.counter);
  }

  getDoubleCounter() {
    return new class DoubleCounter extends BaseCounter {
        count() {
            // In Java, we can access the outer scope counter by ClassName.this like this
            // BaseCounter.this.counter += 2
            // console.log(BaseCounter.this.counter); 
        }
    }();

}

Svar #1

Faktiskt kan jag tilldela detta föräldra till en variabel så här

class BaseCounter {
  counter = 1;

  count() {
    console.log(++this.counter);
  }

  getDoubleCounter() {
    const parentThis = this;
    return new class DoubleCounter extends BaseCounter {
        count() {
            parentThis.counter += 2
            console.log(parentThis.counter); 
        }
    }();

}

Relaterade artiklar