为了将对象中的属性分为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
联合类型转换为字符串数组,则提取附加属性将是微不足道的,但是看不到我该怎么做。
由于将联合类型转换为字符串数组只是查找其他属性的一种方式,我也将接受任何其他不基于联合类型的方式来进行此操作。