Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 为什么我能';无法访问typescript中的子属性?_Arrays_Typescript - Fatal编程技术网

Arrays 为什么我能';无法访问typescript中的子属性?

Arrays 为什么我能';无法访问typescript中的子属性?,arrays,typescript,Arrays,Typescript,我有一个打字脚本代码: 导出界面选择查询{ __typename:“ThingQueryPayload”; 内容:(选择查询内容|空)[]; pageInfo:选择Query\u thing\u pageInfo; } 导出界面选择查询内容{ __字体名称:“东西”; id:字符串; 名称:字符串; } 我想在一个函数中访问name: const itemToString=(数据:SelectQuery\u thing)=>data&&data.content&&data.name 但我得到

我有一个打字脚本代码:

导出界面选择查询{
__typename:“ThingQueryPayload”;
内容:(选择查询内容|空)[];
pageInfo:选择Query\u thing\u pageInfo;
}
导出界面选择查询内容{
__字体名称:“东西”;
id:字符串;
名称:字符串;
}
我想在一个函数中访问name:

const itemToString=(数据:SelectQuery\u thing)=>data&&data.content&&data.name
但我得到了:

Property 'name' does not exist on type 'SelectQuery_thing_content[]'

How can I access name?

data.name不存在,因为它是
SelectQuery\u thing
,但
data.content
不存在。 data.content是
SelectQuery\u thing\u content[]
,它是一个
数组
。 要访问
.name
,您需要首先为数组编制索引,如:

data.content[index].name;
我会在索引之前检查数组的长度

如果要检查,如果所有名称都存在,则可以使用each()

全部

const itemToString = (data: SelectQuery_thing) => 
                       data && data.content && 
                       data.content.length > 0 && 
                       data.content.every(val => !!val.name);// or (({name}) => !!name)

当您以这种方式在
content
下的
name
进行接口时,
SelectQuery\u thing[]
在哪里?我修复了错误,我的意思是SelectQuery\u thing\u content[]name是内容中项目的属性,它是数据的一个数组,您正在访问名称,就好像它是数据的属性一样。。。如果内容是数组,您希望使用哪个名称?我需要打印所有名称
const itemToString = (data: SelectQuery_thing) => 
                       data && data.content && 
                       data.content.length > 0 && 
                       data.content.every(val => !!val.name);// or (({name}) => !!name)