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

如何为TypeScript状态映射定义严格类型的CSS类名对象?

解决方法

你需要用映射类型来确保每个状态键和对应的CSS类名严格绑定,Record之所以不行,是因为它会让所有键对应相同的类型集合,没法限制键值的一一对应关系。

正确的类型定义如下:

type State = 'active' | 'disabled';
type StateClassMap = {
  [K in State]: `component-name—-${K}`;
};

这样定义后,StateClassMap会被TypeScript推断为:

{
  active: "component-name—-active";
  disabled: "component-name—-disabled";
}

此时如果给active键赋值"component-name—-disabled",TypeScript会直接抛出类型错误,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:14:50