Angular 2,Typescript,transiled代码类型安全吗?

时间:2017-08-08 15:40:57

标签: angular typescript2.0 transpiler

我有一个关于转换代码的问题,该代码来自于与Angular 2中的HostListener装饰器一起的typescript(不是Safari问题,我只描述了我是如何发现这个问题的):

我的上传组件适用于所有浏览器,但在Safari上除外。我们发现Safari没有DragEvent。我有一个打字稿方法,看起来像这样:

@HostListener('drop', ['$event'])
public onDrop(event: DragEvent): void {
  .......
}

在转换后的代码中,在转换后的方法上面有一个装饰器,类似这样:

t.b([ e.i(r.HostListener)(“dragover”, [ “$event” ]), t.c(“design:type”, Function), t.c(“design:paramtypes”, [ DragEvent ]), t.c(“design:returntype”, void 0) ], u.prototype, “onDragOver”, null),

如您所见,它为该方法添加了设计:paramtype元数据。关于打印到javascript的打字稿的天真想法是,javascript不是类型安全的,我的打字稿方法中的:DragEvent帮助转换器进行类型检查。

我怎么说,这个方法在Safari中失败了。当我现在将我的typescript方法中的事件参数的类型更改为:Event时,Safari运行良好。

我唯一能看到的是方法上方的转换代码中的元数据。但是如何以及在何处以及为何使用此元数据?或者为什么这在Safari中失败了,我在这里完全迷失了,但我真的很想理解它。

感谢您的描述。

0 个答案:

没有答案