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

如何利用TypeScript接口的键创建新的联合类型?

如何从TypeScript接口提取键并生成联合类型?

TypeScript 内置了专门的工具类型keyof来解决这个需求,直接用它就能提取接口的所有键并生成字符串字面量联合类型。

针对你的场景,实现方式非常简单:

interface A {
  name: string; 
  email: number;
}

// 直接用 keyof 提取接口A的键
type B = keyof A;

此时B的类型就等价于'name' | 'email',完全符合你的要求。

补充说明

  • keyof操作符会返回目标类型的所有公共属性名组成的联合类型,不仅适用于接口,也能作用于type定义的对象类型。
  • 如果需要把这个联合类型作为函数参数的类型约束,可以直接这样用:
    function getValue(obj: A, key: keyof A) {
      return obj[key];
    }
    
    // 调用时只能传入'name'或'email',传入其他值会触发类型报错
    getValue({ name: 'Alice', email: 12345 }, 'name');
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:17:31