防止“对象可能是'undefined'”在Stencil.js组件中使用this.el

问题描述

自最新更新以来,模具将不会编译我的组件。问题如下:

@Element() el: HTMLSpxEditElement
@Listen('keydown',{ target: this.el })
  onClickEnter (evt) {
    if (evt.keyCode === 13) {
      evt.preventDefault()
    }
}

出现此错误

Object is possibly 'undefined'.

L49:      @Listen('keydown',{ target: this.el })
L50:      onClickEnter (evt) {

在这里读过此线程:How to suppress "error TS2533: Object is possibly 'null' or 'undefined'"?,但将“ this.el”更改为“ this!.el”也无济于事。

我不想更改编译器的设置。

解决方法

我意识到不需要指定事件侦听器,因为它已应用于宿主元素。

@Listen('keydown')
  onClickEnter (evt) {
    if (evt.keyCode === 13) {
      evt.preventDefault()
    }
}

这解决了我的问题。