Интерфейс параметра (изменения) события в Angular - PullRequest
0 голосов
/ 31 марта 2020

Какой интерфейс следует использовать, чтобы избежать любого типа в качестве параметра?

Например: у меня есть html file

<div>
    <mat-button-toggle-group (change)="onToggleChange($event);">
        <mat-button-toggle>
            something
        </mat-button-toggle>
    </mat-button-toggle-group 
</div>

и TS

onToggleChange(event): void {
  console.log(event.value)
}

Если бы я использовал его таким образом, он бы работал в браузере, и я мог бы получить значение. Я хотел бы избежать любого типа. Если я попытаюсь следовать

onToggleChange(event): void {
  console.log(event.value)
}

Я получу ошибку в текстовом редакторе, но в браузере все будет хорошо. Я не могу найти тип, который мог бы использовать.

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Источник события change имеет тип MatButtonToggleChange. Попробуйте следующее, если вам нужно указать тип

import { MatButtonToggleChange } from '@angular/material/button-toggle';

export class ButtonToggleExclusiveExample {
  onToggleChange(event: MatButtonToggleChange): void {
    console.log(event);
  }
}

Однако если вам нужно только значение из события, вы можете привязаться к источнику события valueChange. Он имеет тип any.

Шаблон

<div>
  <mat-button-toggle-group (valueChange)="onToggleChange($event);">
    <mat-button-toggle>
      something
    </mat-button-toggle>
  </mat-button-toggle-group>
</div>

Контроллер

export class ButtonToggleExclusiveExample {
  onToggleChange(event: any): void {
    console.log(event);    // <-- prints the value
  }
}
1 голос
/ 31 марта 2020

Вы можете использовать тип MatButtonToggleModule. Вот документы для этого: https://material.angular.io/components/button-toggle/api

...