如何在不修改生成接口的情况下获取TypeScript接口属性类型?
如何从已有TypeScript接口中提取指定属性的类型
当然有更简洁规范的方法!你之前的方式虽然能实现,但有点绕,其实TypeScript本身就提供了直接提取接口属性类型的能力,根本不用搞那些中间变量~
具体实现方式
直接通过索引访问类型的语法,就能从原接口里拿到getCategory的类型,完全不需要修改原接口:
// 从GetCategoryBySlugQuery接口中提取getCategory的类型 type CategoryType = GetCategoryBySlugQuery['getCategory']; // 现在可以直接用这个类型定义你的变量了 const myVariable: CategoryType;
如果你只是临时使用这个类型,甚至可以不用单独定义类型别名,直接把索引语法写在变量声明里:
const myVariable: GetCategoryBySlugQuery['getCategory'];
为什么这个方法更靠谱?
- 避免了不必要的变量声明和
as类型断言,代码更简洁清晰 - 完全符合TypeScript类型系统的设计规范,没有“取巧”的成分
- 类型定义在编译阶段会被移除,不会产生任何运行时冗余代码
内容的提问来源于stack exchange,提问作者Rohman HM
相关产品推荐
相关产品推荐

