在Typescript中:如何为函数提取单独的输入和输出类型?

时间:2017-06-25 12:15:01

标签: typescript

对于此功能:

function first(x: number, y: string) {
return {
    a: x,
    b: y
  };
}

function second(z: typeof first()) {
  return {
    c: 6,
    ...z
  }
}

typeof first()当然是无效的,

我想在first的签名中使用second的推断输出类型。 是否有可能(我假设没有,但希望感到惊讶)

谢谢!

1 个答案:

答案 0 :(得分:1)

不,此时无法提取函数的返回类型。

github上有一个线程可以讨论这个问题。你可以看到它here

您现在可以做的是定义要用作第一个函数的返回类型的特定类型以及第一个函数接收的参数类型。它也更明确,更容易理解。

interface ReturnType {
    a: number,
    b: string
}
function first(x: number, y: string): ReturnType {
    return {
        a: x,
        b: y
    };
}

function second(z: ReturnType) {
    return {
        c: 6,
        ...z
    }
}