首页 > 解决方案 > 参数“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'.

标签: javascripttypescriptreact-nativereact-native-ui-kitten

解决方案


推荐阅读