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

如何在TypeScript中声明string>string>number结构用于useState泛型

类型填写方案

XXXXXX 位置可以直接填入 { [layoutItemId: string]: number },填入后的完整代码如下:

const [selectedLayoutItemIds, setSelectedLayoutItemIds] = useState<
    { [eventTimeId: string]: { [layoutItemId: string]: number } } | undefined
  >(); 

更简洁的优化写法

你也可以用TypeScript内置的Record工具类型简化写法,代码可读性更高、也更方便复用:

// 提前抽离单独定义类型,后续复用更方便
type SelectedLayoutItemIds = Record<string, Record<string, number>>

const [selectedLayoutItemIds, setSelectedLayoutItemIds] = useState<SelectedLayoutItemIds | undefined>()

两种写法的结构完全匹配你描述的三层规则:

  • 第一层键为字符串类型的eventTimeId
  • 第二层键为字符串类型的layoutItemId
  • 第三层值为数字类型的count

内容的提问来源于stack exchange,提问作者János

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:39:02