如何在MacOSX上的Safari中的Angular2指令HostListener中使用TouchEvent Typescript类型

okh*_*obb 7 javascript typescript angular2-directives angular

使用

TouchEvent
Run Code Online (Sandbox Code Playgroud)

在指令中输入会导致Safari桌面出现以下错误

ReferenceError: Can't find variable: TouchEvent
Run Code Online (Sandbox Code Playgroud)

Typescript源代码是

@HostListener('touchstart', ['$event'])
onTouchstart(event: TouchEvent) {
  // ... does something with event.
}
Run Code Online (Sandbox Code Playgroud)

生成的错误代码是

    __decorate([
        core_1.HostListener('touchstart', ['$event']), 
        __metadata('design:type', Function), 
        __metadata('design:paramtypes', [TouchEvent]), 
        __metadata('design:returntype', void 0)
    ], MyTouchDirective.prototype, "onTouchstart", null);
Run Code Online (Sandbox Code Playgroud)

将类型更改为

any
Run Code Online (Sandbox Code Playgroud)

修复,但是应该可以使用这种类型吗?我一般认为类型永远不会产生javascript.我在同一程序中的Typescript类中有其他对TouchEvent的引用,这些引用不会导致问题.