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

TypeScript:如何选取属性名以指定字符串开头的类型属性

提取指定前缀属性的TypeScript类型实现

要从已有类型中创建仅包含属性名以指定字符串开头的新类型,直接使用Pick<Origin, _${string}>会报错,因为_${string}是通用字符串类型,不满足keyof Origin的约束条件。

原始类型

type Origin = {
  testA: string,
  testB: string,
  _c: string,
  _d: string,
  example: string,
  anotherName: string,
}

期望结果

type Result = {
  _c: string,
  _d: string
};

正确实现方案

先定义一个工具类型,筛选出目标类型中符合前缀要求的键:

type KeysWithPrefix<T, Prefix extends string> = {
  [K in keyof T]: K extends `${Prefix}${string}` ? K : never;
}[keyof T];

再结合Pick工具类型使用:

type Result = Pick<Origin, KeysWithPrefix<Origin, "_">>;

逻辑说明

  • 遍历目标类型T的所有键K,通过条件类型判断K是否是以指定前缀Prefix开头的字符串;
  • 符合条件的键保留原类型,不符合的设为never;
  • 最后通过[keyof T]提取所有非never的键,得到符合要求的键集合,传入Pick即可生成目标类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:18:09