Я использую сценарий типа для проекта реагирования. Я определил тип для всех значений, но prop.option? Я не могу получить значение имени. Пожалуйста, скажите мне ответ.
type PropTypes = {
option?: OptionType[]
}
type OptionType = {
id?: number
name?: string
price: number
quantity: number
}
function OrderItemPCForm(props: PropTypes) {
console.info('===>', props.option?.name)
return(<div>...</div>)}
Property 'name' does not exist on type 'OptionType[]'.
Ваша проблема заключалась в том, что вы определили option
как массив (а не объект)
option?: OptionType[]
так что, когда вы пытаетесь получить доступ к значениям из
console.info('===>', props.option?.name)
Это выдаст ошибку, потому что вы пытаетесь получить name
из option
объекта, который не определен.
Есть 2 способа исправить
Во-первых, вы должны удалить определение массива на option
type PropTypes = {
option?: OptionType //removed `[]`
}
Второе исправление может быть
console.info('===>', props.option[index].name) //index can be populated from a loop
Но это также зависит от вашего намерения, какой тип вы хотите получить (массив или объект на option
)
@김유경, Ник прав. Вам просто нужно сделать option
prop type просто объектом, а не массивом OptionType
. И все будет работать нормально
Option представляет собой массив OptionType. Вам нужно будет извлечь из него элемент, а затем получить доступ к свойству name, например: props.option.map((individualOption) => console.info(individualOption.name))