why I get this error ? My code working fine and my search functionality also works fine so why I get this error ? The error is on my Categorie.tsx file on ".filter" function
This expression is not callable.
Each member of the union type '{ <S extends IShopsCategoriesData>(predicate: (value: IShopsCategoriesData, index: number, array: IShopsCategoriesData[]) => value is S, thisArg?: any): S[]; (predicate: (value: IShopsCategoriesData, index: number, array: IShopsCategoriesData[]) => unknown, thisArg?: any): IShopsCategoriesData[]; } | ... 8 more ... ...' has signatures, but none of those signatures are compatible with each other.ts(2349)
Model.ts
export type ICategoriesListAll =
IShopsCategoriesData[] |
IShopsSubCategoriesClothingMenData[] |
IShopsSubCategoriesClothingWomenData[] |
IShopsSubCategoriesElectronicsData[] |
IShopsSubCategoriesArtData[] |
IShopsSubCategoriesBooksData[] |
IShopsSubCategoriesFurnitureData[] |
IShopsSubCategoriesGardenData[] |
IShopsSubCategoriesMusicData[] |
IShopsSubCategoriesToysData[];
Categorie.tsx
const [categoryList, setCategoryList] = useState<ICategoriesListAll>(mockCategoryList);
const handleChangeSearchParam = (searchParam: string) => {
let current: ICategoriesListAll;
if(searchParam.length > 0) {
setSearchParam(searchParam);
current = copiedList.filter(el => el.name.toLowerCase().includes(searchParam.toLowerCase()));
setCategoryList(current);
} else {
setSearchParam('');
setCategoryList(copiedList);
}
};
The error is here
copiedList.filter(el => el.name.toLowerCase().includes(searchParam.toLowerCase()));
on .filter.
If I make only this IShopsSubCategoriesToysData[] at my categoryList at the useState then I get no error but with the Model above I get this error.
can anyone help me and let me know why I get this error and how can I solve it ?