如何在Typescript中枚举接口的所有成员?

问题描述 投票:0回答:1

为了将对象中的属性分为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联合类型转换为字符串数组,则提取附加属性将是微不足道的,但是看不到我该怎么做。

由于将联合类型转换为字符串数组只是查找其他属性的一种方式,我也将接受任何其他不基于联合类型的方式来进行此操作。

typescript
1个回答
0
投票
没有“开箱即用”的方式来做到这一点。但是有一个npm软件包提供了这样的功能:https://www.npmjs.com/package/ts-transformer-keys
© www.soinside.com 2019 - 2024. All rights reserved.