用于将可选值组用作函数参数的打字稿

时间:2019-06-04 09:56:53

标签: javascript typescript

我有一个函数,可以将任意数量的分组值用作参数。我认为最好的方法是传递数组(但可以接受其他选择)。每个数组可以具有1-4个必须匹配特定类型的值。我对此进行编码的尝试看起来像这样:

const transition = (...properties: [string, number?, string?, number?][]): string => {
  // Do something
};

用法看起来像这样:

transition(['color', 2]);
transition(['color', 2], ['background']);
transition(['color', 2], ['background', 2, 'ease']);
transition(['color', 2], ['background'], ['opacity', 3, 'ease']);

我的编译器在类型中引发与?用法有关的错误:

SyntaxError: Unexpected token, expected ","

如果我删除了?,我不会得到编译错误,但是它希望数组中的所有值都可以通过。

对此有简单的解决方法吗?

1 个答案:

答案 0 :(得分:-1)

 // Declare a type for arguments 
export interface ITransitionProperties {
color: string,
value?: number,
type?: string,
value2?: number
}
// and use it in defining the type of argument
const transition = (ArgumentName: ITransitionProperties[]): string => {
// Do something
};