从嵌套对象中的属性访问数组

时间:2021-04-13 18:48:09

标签: arrays typescript object nested nested-object

我有以下嵌套对象:

    export const mockData = {
    sections: [
        {
            name: 'Client',
            subSections: [
                {
                    name: 'Client Detail'
                }
            ]
        },
        {
            name: 'Sales',
            subSections: [
                {
                    name: 'Overview',
                    subSections: [
                        {
                            name: 'Overview - A',
                            fields: [
                                {
                                    key: 'firmName',
                                    type: 'input',
                                    templateOptions: {
                                        label: 'Firm Name',
                                        required: true
                                    }
                                },
                                {
                                    key: 'requestOption',
                                    type: 'select',
                                    templateOptions: {
                                        label: 'Request Option',
                                        required: true,
                                        options: [
                                            { value: '1', label: '1' },
                                            { value: '2', label: '2' },
                                            { value: '3', label: '3' },
                                            { value: '4', label: '4' }
                                        ]
                                    }
                                },
                                {
                                    key: 'region',
                                    type: 'select',
                                    templateOptions: {
                                        label: 'Region',
                                        required: true,
                                        options: [
                                            { value: '1', label: '1' },
                                            { value: '2', label: '2' },
                                            { value: '3', label: '3' },
                                            { value: '4', label: '4' },
                                            { value: '5', label: '5' }
                                        ]
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
};

并且我想从 fields 属性访问数组以呈现表单。现在我拥有的是overviewA: FormlyFieldConfig[] = mockData.sections[1].subSections[0].subSections[0].fields,但我面临着

的错误
Property 'subSections' does not exist on type '{ name: string; }'.

但是,当做一个变通办法时这个错误就会消失,我将属性 subSections 添加到嵌套对象中,如下所示:

export const mockData = {
    sections: [
        {
            name: 'Client',
            subSections: [
                {
                    name: 'Client Detail',
                    subSections: []
                }
            ]
        },
        {
            name: 'Sales',
            subSections: [
                {
                    name: 'Overview',
                    subSections: [
                        {
                            name: 'Overview - A', ...

我想知道为什么

  1. 我遇到了没有解决方法的问题,并且
  2. 如何在没有变通方法的情况下从属性 fields 访问数组?

0 个答案:

没有答案
相关问题