typescript - 如何在 Typescript 中枚举接口的所有成员?
问题描述
为了将对象中的属性分成 2 组(在该对象实现的接口中声明的属性以及所有其他属性),我需要一种从接口获取属性名称数组的方法。第一步大概是keyof
运营商:
interface MyInterface {
a: string;
b: string;
}
function f(i: MyInterface) {
type props = keyof MyInterface;
}
现在我有一个对象传递给这个函数,例如:
f({ a: "a", b: "b", c: "c"} as MyInterface);
我看到那props
是"a" | "b"
,而i
包含c
作为附加属性。如果我可以将props
联合类型转换为字符串数组,那么提取附加属性将是微不足道的,但不知道我该怎么做。
由于将联合类型转换为字符串数组只是查找附加属性的一种方法,因此我也接受任何其他不基于联合类型的方法。
解决方案
没有“开箱即用”的方法可以做到这一点。但是有一个 npm 包提供了这样的功能:https ://www.npmjs.com/package/ts-transformer-keys
推荐阅读
- redis - 如何使用生菜反应api处理get命令的空响应
- flowtype - 流返回错误的类型
- java - 如何将其转换为 Mockito 2.2?
- c# - 无法从 MVC 发送邮件
- python - 如何在定义函数时消除python中的索引错误
- node.js - 如何在 AppEngine 上使用 Angular 提供静态文件
- asp.net-web-api - 使用 3 层架构 Web 应用程序的 WebAPI 项目中未引用类库项目
- sql - 在数据库简单方法中删除时修复身份
- wordpress - 使用 nginx 使用烧瓶应用程序启用 wordpress
- angular - 无法通过 localhost 在 nginx 中查看 Angular 应用程序项目