博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ts 之 函数参数双向协变
阅读量:5876 次
发布时间:2019-06-19

本文共 909 字,大约阅读时间需要 3 分钟。

enum EventType { Mouse, Keyboard }interface Event { timestamp: number; }interface MouseEvent extends Event { xa : number; yb: number }interface KeyEvent extends Event { keyCode: number }function listenEvent(eventType: EventType, handler: (n: Event) => void) {    /* ... */}// Unsound, but useful and common 不健全的 但是有用的和普遍的listenEvent(EventType.Mouse, (e: MouseEvent) => console.log(e.x + ',' + e.y));// Undesirable alternatives in presence of soundness  不可靠的替代品listenEvent(EventType.Mouse, (e: Event) => console.log((
e).x + ',' + (
e).y));listenEvent(EventType.Mouse, <(e: Event) => void> ((e: MouseEvent) => console.log(e.x + ',' + e.y)));// Still disallowed (clear error). Type safety enforced for wholly incompatible types// 还不允许(清晰的错误)。完全不兼容类型强制执行的类型安全listenEvent(EventType.Mouse, (e: number) => console.log(e));

转载于:https://www.cnblogs.com/WhiteHorseIsNotHorse/p/8031798.html

你可能感兴趣的文章
2950交换机 简明配置维护手册
查看>>
我的友情链接
查看>>
PowerDesigner 15.2对Oracle进行反向工程
查看>>
myisam 和 innodb的区别
查看>>
自动切换的JS菜单
查看>>
Entity Framework 4 in Action读书笔记——第五章:域模型映射(Domain model mapping)(三)...
查看>>
CAD Image DLL免费下载使用说明
查看>>
AngularJS 指令
查看>>
ng-controller指令
查看>>
【Java例题】5.2 数组转换
查看>>
Snacks
查看>>
Java学习笔记(三)Java2D组件
查看>>
关于Servlet的getInitParameter的使用
查看>>
在线思维导图
查看>>
Debian 7 的内核 3.2 升级到3.16
查看>>
MySQL数据类型和常用字段属性总结
查看>>
MongoDB的存储结构及对空间使用率的影响
查看>>
java String
查看>>
renhook的使用
查看>>
android 进程模块获取
查看>>