首页 > 解决方案 > 如何使用javascript修复类型never []的错误属性不存在?

问题描述

我有如下数据,

{main: {}}

在 main 我有如下的对象数据

main {
    id: '1',
    main_1: [
        {
            id: '1',
            main_2: [
                {
                    id: '1',
                    data: [ 
                        { //want to retrieve this
                            id: '1',
                            version: '1.1',
                        }
                    ]
                },
                {
                    id: '2',
                    data: [
                        {
                            id: '2',
                            version: '1.1',
                        }
                    ]
                }
            ] 
        },
        {
            id: '2',
            main_2: [
                {
                    id: '3',
                    data: [
                        {
                            id: '3',
                            version: '1.1',
                        }
                    ]
                },
                {
                    id: '4',
                    data: [
                        {
                            id: '4',
                            version: '1.1',
                        }
                    ]
                }
            ]
        }
    ]
}

从上面的数据对象可以看出,我想检索第一个 main_1 并获取它的第一个 main_2 并获取第一个 main_2 数据。

我试图使用如下代码,

function Parent() {
    const main = get(data, 'main');
    const main_1 = main && main.main_1 ? main.main_1 : [];
    const first_main_2 = main_1 && main_1[0] && main_1[0].main_2[0] ? 
        main_1[0].main_2[0] : [];

    const data = first_main_2 && first_main_2.data; // error here property data 
    //doesnt exist on type never[]
    const version =
        (first_main_2 &&
            data &&
                data.find(
                    (item: itemVersion) => item.id === data.id //error here 
                    //property id doesnt exist on type never[]
        )) || {};
  

    return (
        <span>{getSomeFunction(version.version)}</span>
    );  
}

上面的代码给了我如下错误

类型 never[] 上不存在属性数据。类型 never[] 上不存在属性 ID。

不知道为什么会导致此错误。有人可以帮我解决这个问题。谢谢。

标签: javascriptreactjs

解决方案


可以通过以下方式访问main.main_1[0].main_2[0].data

在此处输入图像描述


推荐阅读