如果我有界面:
interface ITest {
a: number;
b: string;
}
我想要实现一个接口,以便函数只需要接收具有接口属性的某些已定义子集的对象,例如,对于上面的示例,它可能只需要提取a
。我尝试了以下方法:
type WithOnly<T, K extends keyof T> = {
[K in keyof T]: T[K];
}
export const f = (x: WithOnly<ITest, 'a'>) => settings.a * 2;
但是编译器似乎并不喜欢这样。它希望x
也有b
。有办法实现吗?