Angular2错误 - 属性' innerWidth'在类型' EventTarget'上不存在

时间:2016-05-18 13:07:24

标签: typescript angular

在我的Angular2应用程序中,我收到以下错误:

 app/src/main.ts(104,42): error TS2339: Property 'innerWidth' does not exist on type 'EventTarget'.

我的组件中有以下方法,编译器不喜欢我的事件对象的innerWidth属性。

onWindowResize(event: Event):void {
        if (event.target && event.target.innerWidth >= 768) {
            this.showMenu = false;
        }
    }

我需要做些什么来预防/克服此错误?我认为if (event.target的第一次检查可以防止这种崩溃。此错误仅在我为事件参数提供Event的类型定义时发生。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您可以像这样覆盖Event类:

interface MyEventTarget extends EventTarget {
    innerWidth: number
}

interface MyEvent extends Event {
    target: MyEventTarget;
}

然后您的代码更改为:

onWindowResize(event: MyEvent):void { <== new created class
  if (event.target && event.target.innerWidth >= 768) {
     this.showMenu = false;
  }
}