Código TypeScript relevante:
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-ng-class-example', templateUrl: './ng-class-example.component.html' }) export class NgClassExampleComponent implements OnInit { isBordered: boolean; classesObj: Object; classList: string[]; constructor() { } ngOnInit(): void { this.isBordered = true; this.classList = ['blue', 'round'] this.toggleBorder(); } toggleBorder(): void { this.isBordered = !this.isBordered; this.classesObj = { bordered: this.isBordered }; } }
Plantilla correspondiente (la parte correspondiente).
<div [ngClass]="classesObj"> Using object var. Border {{ classesObj.bordered ? "ON" : "OFF" }} </div>
Ahora recibo un error en mi archivo .html (alrededor del atributo .bordered) que indica que: "La propiedad 'bordeada' no existe en el tipo 'Objeto'".
Soy nuevo en TypeScript (y también en JavaScript) pero me parece que 'bordeado' está definido en el objeto, entonces, ¿qué está pasando?
¡Gracias de antemano!
No puede simplemente usar classesObj: Object
en TypeScript porque se supone que es un objeto vacío {}
. Necesitas usar any
me gusta
classesObj: any;
O si quieres ser específico
classesObj: { bordered: boolean };