输入任意深度的对象

时间:2019-04-21 05:29:06

标签: typescript types

在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

出于同样的原因,我也无法使用助手类型来定义类型。从某种意义上说,至少在我的经验中,一种类型必须是自引用的。

0 个答案:

没有答案