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



为了将对象中的属性分为两组(在该对象实现的接口中声明的属性和所有其他属性(,我需要一种从接口中获取属性名称数组的方法。第一步可能是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

最新更新