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

如何从TypeScript接口中仅获取键作为自动补全内容?

TypeScript 实现接口键数组的自动补全

要让数组allowedSortIds包含IUser接口的键,同时获得输入自动补全和类型校验,有两种实用方式:

方式一:直接指定数组类型

给数组声明Array<keyof IUser>类型,TypeScript会自动识别接口的所有键作为数组元素的合法值,输入时IDE会弹出补全提示,同时如果输入不属于接口的键会直接报错。

interface IUser {
  id: string;
  firstname: string;
  lastname: string;
}

let allowedSortIds: Array<keyof IUser> = [
  'id', 
  'firstname', 
  'lastname',
];

方式二:用as const固化字面量类型

如果数组内容不需要后续修改,用as const将数组转为只读元组,此时数组元素会被识别为具体的字面量类型,不仅能获得补全,还能提取出对应的联合类型供其他场景复用。

interface IUser {
  id: string;
  firstname: string;
  lastname: string;
}

const allowedSortIds = [
  'id', 
  'firstname', 
  'lastname',
] as const;

// 提取数组元素的联合类型,可用于其他变量或函数参数的类型约束
type AllowedSortId = typeof allowedSortIds[number];

两种方式都能满足需求:方式一适合需要动态修改数组的场景,方式二更适合固定数组且需要复用类型的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 00:05:58