Я пытаюсь добавить тип item
к объекту, который возвращается из функции .map . Тем не менее, я получаю сообщение об ошибке JSX, и я попытался добавить item: JSX.Element
к типу Item, но это не работает правильно. Может кто-нибудь уточнить это для меня? Ниже приведена ошибка, типы и код.
Ошибка:
src/ListPicker.tsx:69:28 - error TS2345: Argument of type '(item: Item) => JSX.Element' is not assignable to parameter of type '(value: string, index: number, array: string[]) => Element'.
Types of parameters 'item' and 'value' are incompatible.
Type 'string' is not assignable to type 'Item'.
{props.items.map((item: Item) => {
~~~~~~~~~~~~~~~~~
Типы:
// TypeScript: Types
interface Props {
title: string,
items: Array<string>,
onPress: Function,
onValueChange: Function,
}
interface Item {
label: string,
value: string,
key: number | string,
color: string,
};
ListPicker.tsx:
// Render iOS Picker
const renderIOSPicker = () => {
try {
return (
<Picker
selectedValue={value}
onValueChange={selectValue}>
{props.items.map((item: Item) => {
return (
<Picker.Item
label={item.label}
value={item.value}
key={item.key || item.label}
color={item.color}
/>
);
})}
</Picker>
)
}
catch (error) {
console.log(error);
}
};