使用Ts 解决this 问题



// 使用Ts 帮忙解决Ts 问题

interface IUser  {
  name:string,
  age:number,
  sayHello(this:IUser):void  //这样this 肯定是指向的IUser 该this只是在规定this,编辑的时候不会存在。
}

const User:IUser = {
  name:'111',
  age:1,
  sayHello(){
    console.log(this.name,this.age);
  }
}

//正常调用
const u = User.sayHello() //this 是没问题的
//不正确调用
// const myU = User.sayHello;
// myU(); //sayHello 的this ==> 就指向了window || undefined 就会非常的危险 

//可以使用ts解决
// const myU = User.sayHello;
// myU(); // 这样执行就会报错了 类型为“void”的 "this" 上下文不能分配给类型为“IUser”的方法的 "this"。ts(2684) 这样就会解决this 隐患
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容