Если вы хотите использовать троичную форму, я полагаю, что вам нужно будет снять условное выражение .name
, чтобы избежать исключения попытки доступа к свойству для нулевого элемента.
var detailsName = name === data.type.elementType ? data.type.elementType.name : data.type.name;
Другим вариантом может быть использование elementType, если он существует, в противном случае используйте тип, чтобы затем получить имя.
var detailsName = name === ( data.type.elementType || data.type ).name;