javascript - 参数“item”隐式具有“any”类型
问题描述
我正在开发名为 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'.
解决方案
推荐阅读
- php - 从子调用父类成员而不调用构造函数依赖项
- typescript - 任何值 ESLint 错误的 Typescript 不安全赋值
- laravel - 如何在隐藏的 HTML 元素中呈现 Vue 组件
- oauth-2.0 - 如何在开发者门户上为 LinkedIn 应用程序添加权限(例如 r_liteprofile、r_emailaddress 等)?
- c# - 使用 MS graph api 从 Sharepoint 读取 xls 文件以获取未知范围
- vue.js - 在 vue api 组合中,我应该在反应性中使用 ref 吗?
- python - Geopandas:联合陆地和沿海缓冲区多边形
- python - python-mysql连接器表创建代码
- javascript - Google App Script - Google-Sheet 行未按预期按时间戳排序
- jenkins - Jenkins Job Builder:使用来自 git repo 的 shell 脚本并在另一个 repo 中执行它