typescript 如何使用结构化参数创建自定义rxjs运算符

whitzsjs  于 2022-12-19  发布在  TypeScript
关注(0)|答案(2)|浏览(122)

我正在尝试创建一个自定义的RxJS过滤器操作符,它将结构化数组作为参数。
但似乎 typescript 不满意的类型,我得到这个错误:
TS2493:长度为“0”的元组类型“[]”在索引“0”处没有元素。

export function customOperator<T extends []>() {
    return pipe(
        filter<T>(([param1, param2, param3])=> {
            //some logic
        })
    );
}
vmdwslir

vmdwslir1#

你可以使用rest操作符(...)来解压缩数组,然后对元素进行反结构化,这将允许编译器理解你将访问数组中的元素。

export function customOperator<T extends []>() {
return pipe(
    filter<T>(([...[param1, param2, param3]])=> {
        //some logic
    })
);
}
ou6hu8tu

ou6hu8tu2#

解决此问题的一种方法是使用rest运算符来解构数组参数
代码:

export function customOperator<T extends []>() {
  return pipe(
    filter<T>((...params)=> {
      //some logic
    })
  )
}

相关问题