首页 > 解决方案 > 如何创建一个定义函数的接口,允许在 TypeScript 中使用任意数量的变量?

问题描述

我正在使用一个对象,它拥有无限数量的功能。为了定义这个对象的类型,我创建了一个新接口,如下所示:

export interface Functions {
  [key: string]: () => void;
}

然后我有一些函数需要一个变量,我得到了一个错误,因为这个签名接口是一个不带变量的函数,所以我把它改成了这样:

export interface Functions {
  [key: string]: (variables?: any) => void;
}

哪个有效,但现在我有一个需要 2 个变量的函数。我可以这样做:

export interface Functions {
  [key: string]: (variableOne?: any, variableTwo?: any) => void;
}

但这并不是解决这个问题的正确方法。我怎么能把它定义为一个可能有无限数量的变量的函数,或者根本没有。

标签: typescript

解决方案


这个语法?

export interface Functions {
  [key: string]: (...variables: any[]) => void;
}

推荐阅读