functionfun(this:{name:string},info:{name:string}){console.log(this)}//获取函数的类型typefuntype=typeof fun
//想要直接获取函数的this类型,采用内置组件typethisType= ThisParameterType<funtype>//想要移除一个函数类型type的this参数类型,并且返回当前剩余的函数类型typethisRemove= OmitThisParameter<funtype>export{}
ThisType
被用作标记一个上下文的this类型
原始方法
//原始获取this,繁琐typeUser={
name:string
age:number}typeIntype={
User: User
getname:()=>voidgetage:()=>void}const username: Intype ={
User:{
name:"乞力马扎罗",
age:18},//ts接收指定的this指向getname:function(this:User){console.log(this.name)//乞力马扎罗},getage:function(this:User){console.log(this.age)//18}}//call() 可以修改函数调用时 this 的指向,其余参数则会作为原函数的参数。//第一个参数 thisArg。代表 this 将会被指向的值。如果不是对象,也会通过 Object() 方法转换为对象。如果是 null 或 undefined,this 则会指向全局对象(即 window 或 global)//传入this指向
username.getname.call(username.User)
username.getage.call(username.User)export{}
采取ThisType<>
typeUser={
name:string
age:number}typeIntype={
User: User
getname:()=>voidgetage:()=>void}//通过ThisType<User>,将这里以后不管多少函数,this的指向始终是Userconst username: Intype & ThisType<User>={
User:{
name:"乞力马扎罗",
age:18},//ts接收指定的this指向getname:function(){console.log(this.name)//乞力马扎罗},getage:function(){console.log(this.age)//18}}//call() 可以修改函数调用时 this 的指向,其余参数则会作为原函数的参数。//第一个参数 thisArg。代表 this 将会被指向的值。如果不是对象,也会通过 Object() 方法转换为对象。如果是 null 或 undefined,this 则会指向全局对象(即 window 或 global)//传入this指向
username.getname.call(username.User)
username.getage.call(username.User)export{}
1.连表更新
准备两张表,id一样,但是姓名不一样, 需求根据id让姓名保持一致 执行的sql UPDATE teacher_copy1 AS b INNER JOIN teacher c ON b.TId c.TId
set b.tnamec.tname
执行结果 2.连接删除 DELETE a
FROMteacher_copy1 AS aINNER JOIN teacher b ON a.TId b.TId