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

如何编写双数组类型?TypeScript实现代码正确性咨询

代码问题分析

以下是针对你编写的TypeScript代码的具体问题分析:

1. TAllHolidayDataQuery 类型的数组定义问题

  • pageParams: [number] 和 pages: [{...}] 使用了固定长度为1的元组,但通常分页参数、多页数据这类字段应该是可扩展的普通数组(比如支持多页数据存储)。如果你的schema里这两个字段是普通数组而非固定长度的元组,建议修改为:
    export type TAllHolidayDataQuery = {
      pageParams: number[];
      pages: [{
        prevOffset: number;
        total: string; // 注意:如果schema里`total`是数字类型,这里要改为`number`
        holidaysData: TAllHolidayData[];
      }];
    }
    
    只有当业务逻辑明确要求这两个字段只能有1个元素时,元组定义才合理。

2. Arr 类型的写法合理性

Arr = [string] & {filter_by_currently: string} 语法上是合法的(给元组添加额外属性),但这种写法比较少见。如果你的schema对应的结构是「一个字符串数组 + 额外的filter_by_currently属性」,这个定义没问题;但如果是包含字符串字段和过滤属性的对象,改成对象类型会更直观:

export type Arr = {
  content: string; // 替换为实际的字符串字段名
  filter_by_currently: string;
}

3. TAllCacheHolidayData 的嵌套结构问题

TAllCacheHolidayData = [[Arr, TAllHolidayDataQuery]] 是两层固定长度为1的嵌套元组,意味着缓存数据只能是「包含单个[Arr, TAllHolidayDataQuery]元组的数组」。如果你的schema里缓存是多个键值对(类似Map结构),建议修改为:

export type TAllCacheHolidayData = [Arr, TAllHolidayDataQuery][];

只有当缓存结构确实是固定的单个嵌套元组时,当前定义才匹配需求。

4. 缺失的类型定义

代码中使用了TAllHolidayData但未给出该类型的具体实现,这会导致编译报错,需要补充这个类型的定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:16:07