Digamos que tengo un componente que mostrará una propiedad de name , por lo que es más o menos así:
import {Component, Input} from 'angular2/core'; @Component({ selector: 'demo', template: `<div>{{name}}</div>`, styles: [``], }) export class Demo { @Input() name: string; } El problema es, ¿cómo podría mostrar [noname] cuando alguien usa este componente pero no pasa ninguna propiedad de name ?
La única solución que se me ocurre es usar un operador lógico dentro de una plantilla como {{ name || '[noname]' }} .
tratar
@Input() name: string = 'noname';Puede interceptar @Input() con un setter y respaldarlo con un campo privado. En setter, realiza una verificación nula para que el campo se establezca solo en un valor no nulo. Por último, vincula su plantilla a un archivo privado en el que ha establecido un valor inicial.
con angular 8 y la configuración predeterminada de tslint , su IDE notará:
así que está bien simplemente escribir:
@Input() addclass = '';sin ninguna "anotación de tipo".