【问题标题】:Angular: strictTemplates - How to assign variables properlyAngular:strictTemplates - 如何正确分配变量
【发布时间】:2020-10-20 12:57:21
【问题描述】:

我在我的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'.

这有点奇怪,因为在input 中只能得到KeyboardEvent。有没有办法摆脱这个错误?我认为这是误报。

【问题讨论】:

  • 看起来在 Angular 中输入错误。我找不到更多关于此的信息。也许打开一个 GitHub 问题是有意义的?
  • 您的输入 (keydown.enter) 也有错字(输入应为小写)
  • 但是尽管首都较低(首都?),但事件还是被抓住了

标签: angular angular-ivy


【解决方案1】:

这和 Angular 自己说的 keydownthan keydown.enter 不同

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

你可以使用“任何”

onKeyEnter(event: any): void {
}

更新或事件

onKeyEnter(event: Event): void {
}

【讨论】:

  • 但是如果你想要 strict 选项而不是 any 是不允许的。顺便说一句:你有报价链接吗?
  • 只需创建一个 stackblitz:stackblitz.com/edit/…。注意,您也可以使用Event 作为变量的类型。 (我更新了答案)。我正在尝试在 Angular 中查看关于 keydown 的 github 字体。如果我能找到,我会再次更新答案。
猜你喜欢
  • 1970-01-01
  • 2017-04-23
  • 2014-09-10
  • 2021-11-23
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 2015-10-26
相关资源
最近更新 更多