Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript默认泛型类型_Typescript_Generics - Fatal编程技术网

Typescript默认泛型类型

Typescript默认泛型类型,typescript,generics,Typescript,Generics,假设我想围绕axios创建一个分页包装器。在这个包装器中,我将能够转换数据有效负载,并添加多个其他转换器以获取最后一页或项目总数 我还需要非常基本的用法的默认参数(负载数据=数据) 但是如果没有提供默认函数,我就很难键入它们 这就是我到目前为止的想法: 类型分页选项={ url:string; 当前页?:编号; 结果每页?:编号; 范围?:数字; updateFn:(页码?:编号)=>作废; 选项:Ref; dataTransformer:(有效载荷:有效载荷)=>有效载荷扩展T[]?有效载荷:

假设我想围绕axios创建一个分页包装器。在这个包装器中,我将能够转换数据有效负载,并添加多个其他转换器以获取最后一页或项目总数

我还需要非常基本的用法的默认参数(负载数据=数据)

但是如果没有提供默认函数,我就很难键入它们

这就是我到目前为止的想法:

类型分页选项={
url:string;
当前页?:编号;
结果每页?:编号;
范围?:数字;
updateFn:(页码?:编号)=>作废;
选项:Ref;
dataTransformer:(有效载荷:有效载荷)=>有效载荷扩展T[]?有效载荷:T[];
totalPageTransformer:(有效负载:有效负载)=>数量;
totalTransformer:(有效载荷:有效载荷)=>数量;
}
//T指我正在获取的数据类型,以及Axios负载的样子
导出默认函数usePaginate({
网址,
当前页面:页面=1,
updateFn=()=>{},
选项=ref({}),
//此处错误:类型“Payload”不可分配给类型“Payload extensed T[]?Payload:T[]”
dataTransformer=(结果)=>结果,
总变压器,
totalTransformer,
结果每页=25,
范围=5,
}:分页选项){
const data=ref([]);//我将获取的数据存储在这里
/* ... */
返回{data};
}
有效载荷示例:

//基本有效负载,数据和分页信息分开
get(url、选项)
。然后({data})=>{
//数据类型为有效载荷
控制台日志(数据);
/*
{
“数据”:[{“名称”:“A”,“id”:1},{“名称”:“B”,“id”:2},{“名称”:“B”,“id”:3}],
“分页”:{
“总数”:15,
“页码”:1,
“结果每页”:3
}
}
*/
});
get(url、选项)
。然后({data})=>{
//数据类型为有效载荷
控制台日志(数据);
/*
没有分页数据,如果我知道它是固定的,我可以在本地提供它(按第一个字母搜索=>always 26)
[{“名称”:“A”,“id”:1},{“名称”:“B”,“id”:2},{“名称”:“B”,“id”:3}]
*/
});

So
Payload
是axios响应,T是您想要从函数中获取的数据类型?与
响应类似。数据
有效载荷
,即
消费者
T
?正确。我将尝试提供一个具有不同有效负载和用途的示例问题是否取决于axios?如果是这样,考虑把它标记为这样。如果不是,请考虑编辑代码以将其作为依赖项移除;理想情况下,有人可以将您的代码放入一个独立的IDE中,比如,并演示您看到的问题(并且仅此问题)。提供答案有助于获得有用的答案,因为回答的人实际上可以测试他们给出的答案。祝你好运事实上,我不认为这两种情况中的任何一种都适用:它不依赖于Axios,因为我对它没有任何问题,类型推断很好,但我需要展示如何使用有效负载(在我最新的编辑中解释)。这里需要考虑的是,如果没有提供默认参数,则只需键入函数参数。这已经是一个最小的可重复的例子。关于axios的部分是解释上下文和用途。因此,
Payload
是axios响应,而T是您希望从函数中获取的数据类型?与
响应类似。数据
有效载荷
,即
消费者
T
?正确。我将尝试提供一个具有不同有效负载和用途的示例问题是否取决于axios?如果是这样,考虑把它标记为这样。如果不是,请考虑编辑代码以将其作为依赖项移除;理想情况下,有人可以将您的代码放入一个独立的IDE中,比如,并演示您看到的问题(并且仅此问题)。提供答案有助于获得有用的答案,因为回答的人实际上可以测试他们给出的答案。祝你好运事实上,我不认为这两种情况中的任何一种都适用:它不依赖于Axios,因为我对它没有任何问题,类型推断很好,但我需要展示如何使用有效负载(在我最新的编辑中解释)。这里需要考虑的是,如果没有提供默认参数,则只需键入函数参数。这已经是一个最小的可重复的例子。关于axios的部分是解释上下文和用途。