试图在函数里返回一个数组 包含一个匿名函数和一个值。返回的函数不可调用

//函数
const func =()=>{
   return [()=>{ console.log('被执行') },3 ]
}

//使用
let [usefun,count] = func()
usefun()

usefun 报错内容为
此表达式不可调用。
  类型 "(CElement<{}, Loading> | ((request?: any) => Element))[]" 没有调用签名。ts(2349)
let handleProductionRequest: (((request?: any) => JSX.Element) | React.CElement<{}, Loading>)[]
阅读 3.1k
2 个回答

你用的是 typescript,所以可以:

  1. 显式指定返回值类型
const func = () : [Function, number] => {
   return [() => {console.log('被执行')}, 3]
}

let [usefunc, count] = func();
usefunc()
  1. 对整个数组使用类型断言
const func = () => {
   return [() => {console.log('被执行')}, 3]
}

let [usefunc, count] = func() as [Function, number];
usefunc()
  1. 对单个变量使用类型断言
const func = () : [Function, number] => {
   return [() => {console.log('被执行')}, 3]
}

let [usefunc, count] = func();
(usefunc as Function)()
const func =()=>{
   return [()=>{ console.log('被执行') },3 ] as const;
}

//使用
let [usefun,count] = func()
usefun()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题