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

如何在TypeScript中从对象的字符串类型字段推导对应类型

解决方案

要实现从给定对象推导目标类型,需要分两步操作:

  1. 锁定对象的字面量类型
    默认情况下TypeScript会把obj中type的值推断为宽泛的string类型,无法精准映射到TS原生类型。我们需要用as const断言来保留字面量类型信息:
const obj = {
  PROP1: {
    type: 'number',
  },
  PROP2: {
    type: 'string',
  },
  PROP3: {
    type: 'boolean',
  },
  PROP4: {
    type: 'string',
  },
} as const;
  1. 创建映射类型推导目标结构
    先定义字符串类型到TS原生类型的映射表,再通过keyof typeof obj遍历对象键,完成类型转换:
// 定义字符串类型到TS原生类型的映射
type TypeMap = {
  number: number;
  string: string;
  boolean: boolean;
};

// 推导目标类型
type ObjType = {
  [K in keyof typeof obj]: TypeMap[typeof obj[K]['type']];
};

此时ObjType的类型就完全符合需求:

// 最终推导结果
type ObjType = {
  PROP1: number;
  PROP2: string;
  PROP3: boolean;
  PROP4: string;
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:04:54