我要实现以下对象的接口。
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'.
}
如果你知道,请给我解决这个问题。为阅读干杯。:)
最佳答案
定义一个拥有自己类型的成员的类还不够吗?
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;
与任何递归一样,您可能应该在某个地方停止,以便我将recursive属性设置为可选。