我想为以下对象实现接口。
const test:Test = {
a: {
b: {
c: {
(d... f... g... recursively),
keyName: 1
}
},
keyName: 1
},
keyName: 1
};
我试着像下面这样做,但是我收到了一个错误。
interface Test {
[key: string]: Test;
keyName?: number; => Property 'keyName' of type 'number | undefined' is not assignable to string index type 'Test'.
}
如果你知道,请解决这个问题。 Thansk阅读。 :)
答案 0 :(得分:0)
是不是定义了一个具有足够自己类型成员的类?
class A {
public b: A;
public c: string;
}
然后你可以这样做:
let y: A;
y.b.b.b.b.b.b.b.b.b;
y.b.b.b.b.c;
与任何递归一样,你应该停在某处,这样我就可以使递归属性成为可选项。