类型问题

来源:11-24 【参数装饰器底层源码】 参数装饰器 + 详解底层 JS 源码

jonben

2022-04-23

type paramsType1 = (targetPrototype: any, methodName: string, paramIndex: number) => any
function fn1():paramsType1  {
  return function() { // S100

  }
}

paramsType1定义的函数类型接收的是3个参数
在fn1函数中定义返回类型是paramsType1
为什么S100 的匿名函数中不传递参数也不会报错呢

写回答

1回答

keviny79

2022-04-23

TS 中, 有个函数类型规则, 某个函数类型可以接受比它参数个数少或者空参数的函数。例如:

const fn:(param1:string,param2:number)=>any=(str:string):void=>{}//success

const fn2:(param1:string,param2:number)=>any=():number=>{//sucess

        return 3;

}

// 注意:函数类型的返回值和函数要是匹配,或包含关系【就是函数返回值是函数类型的返回值的子类类型】

let fn3:(param1:string,param2:number)=>number=():string=>{//错误

    return 3;

}


0
0

晋级TypeScript高手,成为抢手的前端开发人才

轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈

871 学习 · 425 问题

查看课程