首页 > 解决方案 > 打字稿回调参数,使用函数解析

问题描述

我有一种情况,我用一些参数调用一个函数,这些参数是使用另一个函数解决的。

这就是代码的外观。

function getArgs (): [string, number] {
  return ['hello world', 22]
}

function callFnWithArgs (callback) {
  callback(...getArgs())
}

callFnWithArgs(function (/* typehint here */) {
})
  1. 该函数callFnWithArgs接受一个回调,然后通过传递一些参数来执行它。
  2. 这些参数由另一个名为getArgs().

那么,有没有办法输入提示,回调的参数,即另一个函数的返回值?

标签: typescripttypescript3.0

解决方案


在 TypeScript 3.0 或更高版本中,您可以使用ReturnType标准库中的类型别名来确定 of 的返回类型,getArgs然后使用 rest 参数将其与 的回调联系起来callFnWithArgs

function getArgs (): [string, number] {
  return ['hello world', 22]
}

function callFnWithArgs (callback: (...args: ReturnType<typeof getArgs>) => void) {
  callback(...getArgs())
}

callFnWithArgs(function (a, b) {
  // a is string, b is number
})

推荐阅读