literal de objeto de destruição de texto datilografado na construção da classe, as propriedades padrão não funcionam
Estou tentando usar valores padrão para destruir literalmente o objeto, mas não recebo os valores padrão, apenas 'indefinidos'. Qual é o caminho certo?
import { Component } from '@angular/core';
export class Hero {
id: number;
name: string;
// constructor( {id = 3, name = 'defaulthero'} = {}) {
constructor( {id , name }: {id?: number, name?: string } = { id:3, name: 'defaulthero'} ) {
console.log( id, name);
this.id = id;
this.name = name;
}
}
@Component({
selector: 'my-app',
template: `<h1>{{title}}</h1><h2>Hero {{hero3.id}} {{hero3.name}}</h2>`,
})
export class AppComponent {
title = 'Tour of Heros';
public hero3: Hero;
ngOnInit() {
//this.hero3 = new Hero ( ) ; // work
//this.hero3 = new Hero ( {} ) ; // does not work
this.hero3 = new Hero ( {id: 0} ) ; // does not work, default value 'defaulthero' not assign, just i get 'undefined'
}
}