我正在开发名为 Autocomplete 的 UI Kitten 组件。
我已经关注了他们的文档,但是由于它是在 React 中而不是 typescript 中,而且我对 typescript 还是很陌生,所以我总是遇到相同的错误“参数'item'隐式具有'any'类型”。
我的代码如下:
export const HSCodes = [
{ description: 'A RANDOM NAME', HSCode: 'A RANDOM CODE' },
... many more
];
function filterItem(item, query: string) {
if (item.description.includes(query.toUpperCase())) {
return item.description.includes(query.toUpperCase());
} else if (item.HSCode.includes(query.toUpperCase())) {
return item.HSCode.includes(query.toUpperCase());
}
}
const onSelectHS = (index: number) => {
setHsCode(HSCodes[index].HSCode);
};
const onChangeTextHS = (query: string) => {
setHsCode(query);
setDataHS(HSCodes.filter((item: object) => filterItem(item, query)));
};
const renderOptionHS = (item, index: number) => (
<AutocompleteItem key={index} title={item.description + ' ' + item.HSCode} />
);
... things not important
<Autocomplete
placeholder={t('Enter DUA Number')
value={hsCode}
style={styles.autoComplete}
onSelect={onSelectHS}
onChangeText={onChangeTextHS}
onBlur={saveHsCode}>
{dataHS.map(renderOptionHS)}
</Autocomplete>
我很挣扎,因为如果我声明 item: object,这一切都会崩溃,当我在 filterItem 中将 item 声明为 object 时它实际上说的是什么
Property 'description' does not exist on type 'object'.