javascript - 类型“T [keyof T]”上不存在属性“toLowerCase”
问题描述
我正在尝试编写一个具有两个 args(obj 数组和搜索词的数组)的泛型类型的函数,但出现错误 -类型“T [keyof T]”上不存在属性“toLowerCase”
这是功能:
function matchSearchTerm<T>(data: T[], search: string): T[] {
return data.filter((obj) => {
const filteredData = (Object.keys(obj) as Array<keyof typeof obj>).some((value) => {
return (
typeof obj[value] === "string" && obj[value].toLowerCase().includes(search.toLowerCase())
);
});
return filteredData;
});
}
这里缺少什么?
解决方案
这个怎么样:
return obj[value]['toLowerCase']?.call(obj[value]).includes(search.toLowerCase())
在我看来,它返回 true/false/undefined -> for filters 它很好......或者我们可以使用一些三元运算符,如果我们只想要 true/false......
推荐阅读
- java - 在应用程序中打印二维数组会出现空白屏幕
- c# - CORS asp.net 核心 webapi - 缺少 Access-Control-Allow-Origin 标头
- bash - 在awk中将第二个模式转换为毫秒
- python - 如何使用 Shapely 删除彼此太近的点?
- javascript - 如何通过 Javascript 定位子 div?
- php - 如何使用 Laravel 迁移安全地回滚 MySql 数据库中的主索引
- amazon-ec2 - “如何修复 'mosquitto package' 错误”在 Amazon Linux 上
- python - 从网络驱动器启动时 psycopg2 连接失败
- android - 如何修复 React Native Webview 不显示元素
- outsystems - 为什么我的列表的详细信息未显示在外部系统的详细信息屏幕中