在Typescript中是否可以定义具有任意数量的嵌套对象的类型?
为简化问题,我们仅考虑键入仅包含字符串条目的基本JSON对象。因此,此JSON对象的属性可以是另一个基本JSON对象,也可以是字符串。
这将是一个示例:
const obj = {
propA: 'a string';
propB: {
propA: 'a string';
propB: {
propA: 'a string';
}
};
}
因此,此示例的“深度”为2(或3,取决于您的计数方式)。
是否可以键入此对象,但是更一般而言,可以键入任意深度的对象?我无法提出解决方案,尤其是Typescript中不允许使用递归类型,即
type A = A & string | string; // does not compile
出于同样的原因,我也无法使用助手类型来定义类型。从某种意义上说,至少在我的经验中,一种类型必须是自引用的。