You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript联合类型与索引签名冲突 表格分页请求类型定义问题

问题原因

你的报错根源是交叉类型的索引签名冲突:
Filters 类型定义的任意字符串索引要求值必须为 React.Key[] 类型,而你将它和 Sort、Pagination 做交叉后,order_by、sort_order、page、page_size 这几个固定属性的类型都是非数组类型,和索引签名的要求冲突。

解决方案

使用 TypeScript 4.1 及以上支持的键重映射特性,在定义 Filters 索引签名时自动排除 Sort 和 Pagination 的固定键,不需要手动枚举要排除的键:

// 提取所有固定请求参数的键
type FixedRequestKeys = keyof Sort<unknown> | keyof Pagination

// 重写Filters类型,排除固定键的索引校验
interface Filters {
  [key: string as Exclude<key, FixedRequestKeys>]: React.Key[];
}

// 原有Request类型不需要改动
type Request<T> = Sort<T> & Pagination & Filters;

修改后你原来的实例合并代码即可正常通过类型校验,后续如果 Sort 或 Pagination 新增属性,也会自动被排除在 Filters 的索引校验规则外,不需要手动修改配置。


内容的提问来源于stack exchange,提问作者Sergei Klinov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:54:03