也就是说,成员方法中,如果没提供function this type,那么就沿用该类/接口的class this type,类似于自动推断而来的类型与显式声明类型之间的关系:后者能够覆盖前者 注意,虽然最初的设计是这样的(开启strictThis/strictThisChecks选项),但由于性能等方面的原因,后来去掉了该选项。因此,目前function this type与class thi...
interface Triangle { a: number; b: number; c: number; area(this: Triangle): () => number; } let triangle: Triangle = { a: 10, b: 15, c: 20, area: function (this: Triangle) { return () => { const p = (this.a + this.b + this.c) / 2 return Math.sqrt(p * (p - ...
type ThisType = { name: string } // 【这个this参数要放在第一位。】 function eating(this: ThisType, message: string) { console.log(this.name + ' eating', message) } const info = { name: 'why', eating: eating, } // 隐式绑定 info.eating('哈哈哈') // 显示绑定 eating.call({ n...
当函数使用到this时,需要在参数中指出this,包括this的类型,而且this必须在函数的第一位 this可以不用在接口中声明interface IObj{a:number;b:number;c(a:number):void;clickHandler(e:MouseEvent):void;}var o:IObj={a:1,b:2,c:function(this:IObj,a:number):void{/...
console.log(this.name + ' eating') }, } info.eating() export {}08_this的不明确类型.tstype ThisType = { name: string } // 【这个this参数要放在第一位。】 function eating(this: ThisType, message: string) { console.log(this.name + ' eating', message) } const info = { name: '...
这个时候,通常TypeScript会要求我们明确的指定this的类型: typeThisType={name:string};// 指定this的类型functioneating(this:ThisType,message:string){console.log(this.name+" eating",message);}constinfo={name:"why",eating:eating,};// 隐式绑定info.eating("哈哈哈");// 显示绑定eating.call({name:...
function buildName(firstName:string, ...restOfName:string[]) {returnfirstName +""+ restOfName.join(""); } let buildNameFun: (fname:string, ...rest:string[]) =>string= buildName; this 学习如何在JavaScript里正确使用this就好比一场成年礼。 由于TypeScript是JavaScript的超集,TypeScript程序员...
慎用!!!不要在Typescript中使用Function类型 事实上,我们已经舍弃了所有类型声明,但 video仍旧被推断为 { name: string; views: number } 。这是可能的,因为我们的函数定义的特殊性:(item: T) => number 。 原文链接:https://www.totaltypescript.com/dont-use-function-keyword-in-typescript...
typeThisType={name:string};functioneating(this:ThisType){console.log(this.name+" eating");}constinfo={name:"why",eating:eating,};// 隐式绑定info.eating();//why eating//eating();/* The 'this' context of type 'void' is not assignable to method's 'this' of type 'ThisType'. ...
在对象的方法中定义的this,ts是可以自动推导的,但是独立函数中的this,是推导不出来的。 必须要在独立函数中定义this的类型 type ThisType = { name: string }; const eating = function (this: ThisType) { console.log(this.name + " eating~"); ...