Typescript泛型类型未知参数计数
我试图创建一个具有泛型类型的函数,该泛型类型接受一个函数及其参数数组,然后将它们应用于该函数,但typescript无法正确解释args类型Typescript泛型类型未知参数计数,typescript,function,generics,arguments,Typescript,Function,Generics,Arguments,我试图创建一个具有泛型类型的函数,该泛型类型接受一个函数及其参数数组,然后将它们应用于该函数,但typescript无法正确解释args类型 const animate=async( 动作:(有效载荷:P)=>任何, 算法:(…args:A[])=>P[], args:A[] ) => { 如果(状态.播放)返回; 调度(切换播放()); 常量序列=算法(…args); for(序列的let元素){ 等待延迟(1); 派遣(行动(要素)); } 调度(切换播放()); }; 这是我在尝试使用它
const animate=async(
动作:(有效载荷:P)=>任何,
算法:(…args:A[])=>P[],
args:A[]
) => {
如果(状态.播放)返回;
调度(切换播放());
常量序列=算法(…args);
for(序列的let元素){
等待延迟(1);
派遣(行动(要素));
}
调度(切换播放());
};
这是我在尝试使用它时遇到的错误
类型为“(rows:number,cols:number,startCell:Coordinates,endCell:Coordinates)=>GridT[]”的参数不能分配给类型为“(…args:(number | Coordinates)[])=>GridT[]”的参数。您需要的是
参数
类型:
从函数类型的参数中使用的类型构造元组类型
然后,您可以这样定义您的函数:
const animate=async P[]>(
动作:(有效载荷:P)=>任何,
算法:F,
args:参数
) => {
//废话
}
如错误消息所示,如果将算法的类型定义为(…args:A[])=>p[]
,则实际上是说每个参数都是同一类型的(在本例中是数字|坐标
),因此当您尝试传入类型的函数时(行:编号,列:编号,起始单元格:坐标,结束单元格:坐标)=>GridT[]
不匹配