Я использую проп-типы в реактивном компоненте. Компонент имеет опору data
, которая должна представлять собой массив объектов, подобных этому: [{value: 'some string', id: 123}]
. Я хочу добавить пользовательскую функцию типа проп, которая требует data
, если props.useCustomSuggestions
равно false
. Я пробовал что-то вроде этого:
data: (props) => {
if (!props.useCustomSuggestions && !props.data) {
return new Error('Data must be provided to use default suggestions');
} else if (props.data && typeof props.data !== 'object') {
return new Error(
'Data must be an array',
);
}
};
Я считаю, что это работает для проверки того, что массив требуется, когда props.useCustomSuggestions
равен false
, но он не проверяет, отформатированы ли объекты в data
правильно. Есть ли другой способ написать это, который проверяет массив состоит из объектов со свойствами value
типа строки и id
типа номера?
Я думал, что документация customArrayProp в реакцииможет быть решением, но он не пропускает весь объект props, поэтому я теряю возможность сделать data
условно обязательным для значения useCustomSuggestions
.