当前位置: 首页 > Web前端 > JavaScript

如何理解new(...args-any[])=-any

时间:2023-03-27 17:06:12 JavaScript

【关于javascript:如何开始理解type...args:any[])=>any](https://www.codenong.com/5072...)如何理解下面代码中的new操作?/***检查值是否是指定对象的实例。*/isInstance(object:any,targetTypeConstructor:new(...args:any[])=>any){returntargetTypeConstructor&&typeoftargetTypeConstructor==="function"&&objectinstanceoftargetTypeConstructor;}我们一步步分解.()=>any此函数没有输入参数并返回任何类型。(...args:any[])=>any...args:any[]使用RestParameters构造,这实质上意味着可以提供任意数量的any类型的参数。因为any参数的个数未知,所以参数的类型是any的数组。最后,添加新关键字。new(...args:any[])=>any这里的new关键字指定这个函数可以被当作一个类的构造函数,使用new关键字来调用。回到文章开头的函数:函数是一个可以接受任意数量的返回类型为any的参数的函数(any类型的函数),并且可以用new关键字作为构造函数。看这个函数的具体消费例子:目标类型构造函数;}classJerry{constructor(privatename:string){this.name=name;}}constjerry:Jerry=newJerry('Jerry');console.log(isInstance(jerry,Jerry));output:trueifput如果删除了new关键字,则会报告错误:Argumentoftype'typeofJerry'isnotassignabletoparameteroftype'(...args:any[])=>any'。类型“typeofJerry”不提供与签名“(...args:any[]):any”的匹配。更多Jerry原创文章在这里:《王子熙》: