Kuinka täyttää Typescript-luokkamalli Angularissa


Loin luokkamallin enkä tiedä, miten täyttää luokka arvoilla.

User.ts

export class User {
    constructor(
        username: string,
        password: string,
        token: string
    ) { }
}

app.component.ts

  ngOnInit() {

    let user = new User('uname' , 'pword', 'sampletoken');
    console.log(user);
  }

Kun suoritan tämän, käyttäjä on edelleen tyhjä.

Vastaus #1

Lisää käyttöoikeusmäärittäjiä konstruktorin argumentteihin, jotta siitä tulee luokan ominaisuus. Muuten sitä pidetään vain konstruktorin metodin alueen ominaisuutena.

User.ts

export class User {
    constructor(
        public username: string,
        public password: string,
        public token: string
    ) { }
}

Vastaus #2

Vaihtoehtoinen tapa on, että voit myös tehdä näin :-

export class AppComponent  {
  name = 'Angular 6';

  constructor(){
     let user = new User({username: 'abc', password: '1234', token: 1});
     console.log(user);

  }
}


    class User {
        public username?: string;
        public password?: string;
        public token?: number;

        constructor(values: User) {
          Object.assign(this, values);
        }
    }

Tässä on linkki, voit tarkistaa sen konsolista.. CodeSandbox-demo