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

TypeScript:如何基于接口成员快速约束变量取值类型?

TypeScript 接口成员名类型的简便定义方案

可以直接使用 TypeScript 内置的 keyof 操作符解决这个问题,它会自动提取接口的所有成员名并生成对应的联合类型,无需手动枚举每一个成员。

具体实现

先保留你的接口定义:

interface Field {
    code: string
    name: string
    // 其他成员...
}

定义变量时,直接用 keyof Field 作为类型:

let key: keyof Field;

效果说明

  • keyof Field 等价于手动编写的 "code" | "name" | ...(包含接口所有成员名的联合类型)
  • 当接口 Field 新增或删除成员时,keyof Field 会自动同步更新,无需手动修改变量的类型定义
  • 赋值时仅允许使用接口存在的成员名:
    key = "code"; // 合法
    key = "name"; // 合法
    key = "invalidKey"; // 编译报错,Field接口无此成员
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:32:32