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

如何获取TypeScript接口中指定键的类型?以User.name为例

实现TypeScript类型的动态同步:复用接口属性类型

嗨,这个需求其实在TypeScript里有非常简洁的解决方案,完全不用手动维护多个地方的类型一致性,下面给你两种常用的实现方式:

1. 直接使用索引访问类型(最直观)

TypeScript支持通过索引访问类型来直接获取接口中某个属性的类型,写法就是 接口名['属性名']。这样当原接口的属性类型变更时,所有引用这个类型的地方都会自动同步:

interface User {
  id: number;
  name: string;
}

// 直接复用User中name的类型
type UserInstance = {
  name: User['name'];
  // 这里可以添加你需要的其他属性
  age?: number;
  isVerified: boolean;
};

举个例子,如果之后你把User里的name类型改成string | null,UserInstance里的name类型会自动变成string | null,完全不需要手动修改。

2. 使用Pick工具类型(适合复用多个属性)

如果你需要从User接口中复用多个属性,可以用TypeScript内置的Pick工具类型,它可以帮你从接口中挑选指定的属性,再通过交叉类型(&)添加自定义属性:

interface User {
  id: number;
  name: string;
}

// 从User中挑选name属性,再合并自定义属性
type UserInstance = Pick<User, 'name'> & {
  age?: number;
  isVerified: boolean;
};

这种方式的好处是,当你需要复用多个属性时(比如同时复用id和name),只需要把Pick<User, 'name'>改成Pick<User, 'id' | 'name'>就可以了,同样能保持类型的动态同步。

这两种方式都能完美解决你的问题,核心就是利用TypeScript的类型系统特性,让类型之间建立关联,避免重复定义和手动维护的麻烦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:30:36