Angular: strictTemplates - 如何正确地分配变量

3

我在Sample.html的某处定义了

<input  (keydown.Enter)="onKeyEnter($event)" ...

在我的Sample.ts文件中,我定义了

  onKeyEnter(event: KeyboardEvent): void {
    ....
    event.preventDefault();
    event.stopPropagation();
  }

我使用 strictTemplates 进行时,发生了错误。
error TS2345: Argument of type 'Event' is not assignable to parameter of type 'KeyboardEvent'.

这有点奇怪,因为在中只能获取一个KeyboardEvent。有没有方法摆脱这个错误?我认为这是误报。


1
似乎Angular中有一些错误的输入。我找不到更多信息。也许最好打开一个GitHub问题? - JSON Derulo
你的输入中也有一个拼写错误 (keydown.enter)(enter 应该是小写)。 - Marek W
但是尽管首字母小写,事件仍然被捕获。 - LeO
1个回答

1

这里有两个事件,不要把keydownkeydown.enter混淆了,正如Angular自己所说的。

类型“Event”缺少类型“KeyboardEvent”的以下属性:altKey、char、charCode、code和其他16个属性。

您可以使用“any”。

onKeyEnter(event: any): void {
}

更新或事件
onKeyEnter(event: Event): void {
}

但是如果你想要开启strict选项,那么any就不允许了。顺便问一下:你有引用链接吗? - LeO
只需创建一个 StackBlitz:https://stackblitz.com/edit/angular-ivy-drsyrq?file=src%2Fapp%2Fapp.component.ts。注意,您也可以使用 Event 作为变量的类型。(我已更新答案)。我正在尝试查找有关在 Angular 中按键按下的 GitHub 字体。如果我找到了,我会再次更新答案。 - Eliseo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接