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

如何在TypeScript的Context API中正确定义嵌套对象的类型?

你原先的写法混淆了对象键的类型声明和值的类型声明,需要使用TypeScript的索引签名+固定长度元组来实现对应结构,正确写法如下:

1. 基础interface定义

interface AppContext {
  groups: {
    // 索引签名:声明外层对象所有键为字符串类型
    [key: string]: [string, string];
  }
}

规则说明:

  • [key: string] 是TypeScript索引签名语法,用来定义动态键对象的键类型
  • [string, string] 是固定长度为2的字符串元组类型,正好匹配你要求的「两个元素分别为id和item字符串」的结构

2. 语义化增强写法

如果需要让元组的含义更清晰,还可以给元组元素加标签,类型校验规则不变,后续调用时TS会自动给出字段提示:

interface AppContext {
  groups: {
    [id: string]: [groupId: string, itemText: string];
  }
}

3. 默认状态无需调整

你写的默认状态代码完全符合类型要求,不需要修改:

const defaultState: AppContext = {
  groups: {},
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:39:00