这里是一个示例结构,其中每个对象中的子级与其父级共享相同的结构,并且value字段实现了父级的value字段。
const x: R<{}, { a: number, b: number }> = {
value: { a: 1, b: 2 },
children: [
{ value: { a: 1, b: 2 } },
{
value: { a: 1, b: 2, c: 3 },
children: [
{ value: { a: 1, b: 2, c: 3, d: 4 } },
{ value: { d: 4 } }, // invalid
],
},
{ value: { c: 1, d: 3 } }, // invalid
],
}
我正在尝试如下定义此类型:
interface R<P, T extends P = P> {
value: T;
children?: Array<R<T, any>>;
}
但是,此接口未能在嵌套记录中找到错误(请参见最后带有invalid
注释的错误)。