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
