this

what is this

学习了ts 才对this有了真正的理解
this就是一个参数

interface Human{
    name:string
    age:number
}
function x(this:Human){
    console.log(this);
}
x()//这里报错 无法调用
  • 真正调用方式
x.call({name:'Jason',age:18})

判断this 就是看在调用的时候传入的this 是谁

重载

即实现函数的多种调用方式
参数可以为不同形式

类型推断

ts可以根据已规定的类型来判断 类型


类型推断

类型兼容

类型兼容

设计目的:减少interface 声明
如果仅仅是在现有接口上多几个属性不至于在多声明几个接口

soundness

  • 声明接口和函数
 enum EventType { Mouse, Keyboard }

interface Event { timestamp: number; }
interface MouseEvent extends Event { x: number; y: number }
interface KeyEvent extends Event { keyCode: number }

function listenEvent(eventType: EventType, handler: (n: Event) => void) {
    /* ... */
}

函数接受Event

  • 子类型调用
    传入的类型更加具体相较于Event
listenEvent(EventType.Mouse, (e: MouseEvent) => console.log(e.x + ',' + e.y));
  • 传入Event 转成mouseEvent
listenEvent(EventType.Mouse, (e: Event) => console.log((<MouseEvent>e).x + ',' + (<MouseEvent>e).y));
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容