声明符合类型的Typescript函数

时间:2019-02-14 16:14:05

标签: typescript types

假设我已经声明了一个包含定义特定类型函数的类型

type Callback = (err: Error | null, result: any)
type UselessFunction = (event: string, context: any, callback: Callback) => void

我想声明必须符合类型UselessFunction的函数

我仅在文档中找到了如何使用箭头语法为函数分配类型

const someFunction: UselessFunction = (evt, ctx, cb) => {}

如何将类型分配为函数声明?我在文档中找不到语法

function someFunction (event, context, cb) {
}

1 个答案:

答案 0 :(得分:3)

TypeScript缺少此功能。您需要将类型注释添加到声明的参数中并分别返回值,以使该函数具有特定的类型。但是,您可以使用ParametersReturnType类型使它更加方便。

type UselessFunction = (event: string, context: any, callback: Callback) => void

function someFunction (...params: Parameters<UselessFunction>): ReturnType<UselessFunction> {
  // ...
}