javascript - Skapa egenskap inuti konstruktor med Typescript


Jag har en javascriptkod som fungerar perfekt:

class myController {
   constructor () {
      this.language = 'english'
   }
}

MEN när jag försöker göra samma sak med Typescript

export default class myController {
  constructor () {
    this.language = 'english'
  }
}

Det ger mig följande fel:

Egenskapen 'language' finns inte på typen 'myController'.ts(2339)

Varför händer exakt detta när man försöker skapa en egenskap för myController?
Vad skulle vara rätt sätt att göra det på?

Svar #1

Eftersom du försöker sätta en egenskap som inte finns i klassen som det står, deklarera den någonstans i klassen innan du försöker sätta den, till exempel:

export default class myController {
  private language: string;
  constructor () {
    this.language = 'english'
  }
}

Svar #2

Det måste deklareras som en egenskap på typen (vanligtvis före konstruktorn):

export default class myController {
  language: string;
  constructor () {
    this.language = 'english'
  }
}

Relaterade artiklar