Hvordan fylle en TypeScript-klassemodell i Angular


Jeg opprettet en klassemodell, og jeg vet ikke hvordan jeg skal fylle en klasse med verdier.

Bruker.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);
  }

Når jeg kjører dette, er brukeren fortsatt tom.

Svar #1

Legg til tilgangsspesifikatorer på konstruktørargumenter for å gjøre dem til klasseegenskaper. Ellers vil de bli betraktet som egenskaper kun i konstruktørmetodens omfang.

Bruker.ts

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

Svar #2

Den alternative måten er at du også kan gjøre det på denne måten :-

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);
        }
    }

Her er linken, du kan sjekke den i konsollen.. CodeSandbox-demo