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
