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

TypeScript:如何限定getValue函数的name参数为Data接口的键类型?

解决方案

先还原截图中的代码结构:

interface Data {
  name: string;
  age: number;
  address: string;
}

function getValue(data: Data, name: /* 需要设置的类型 */) {
  return data[name];
}

要让getValue函数的name参数仅接受Data接口的某一个键作为输入,只需将name的类型设置为keyof Data即可。修改后的函数如下:

function getValue(data: Data, name: keyof Data) {
  return data[name];
}

说明

  • keyof是TypeScript的类型操作符,它会生成一个由目标类型所有键组成的联合类型。这里keyof Data等价于"name" | "age" | "address",刚好对应Data接口的全部属性名。
  • 这样设置后,调用getValue时如果传入的name不是Data的合法键,TypeScript会在编译阶段直接报错,严格限制参数的合法性。

内容的提问来源于stack exchange,提问作者Valen G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:25:31