我有一个可选属性的嵌套对象。我找到了一种通过此 answer 声明此类型的方法。现在我试图弄清楚如何将这种类型应用于我的对象接口,而不必修改每个使用该接口的对象。一些例子可以更清楚地说明这一点。
这是一个最小的可重现 example。
这里是递归对象类型:
export type PartialRecursive<T> = T extends object
? {
[K in keyof T]?: PartialRecursive<T[K]>;
}
: T;
示例界面:
export interface Foo {
bar: boolean;
bax: boolean;
}
简单对象(注意:这里需要数组):
import { Foo } from './types';
const foo: Foo[] = [
{
bar: true
}
]
要使用新界面,我可以这样做:
import { Foo, PartialRecursive } from './types';
const foo: PartialRecursive<Foo>[] = [{...}];`
但我更愿意将此 PartialRecursive
类型应用于声明它的接口,但我不知道该怎么做。我有很多对象,并且更愿意针对接口实现这个 type
,而不是每个使用它的实现。
我希望这很清楚,检查了 TS 文档,但很难找到我要找的东西。