对象可能是'undefined',并且无法调用可能是'undefined'的对象]]"/>
对象可能是'undefined',并且无法调用可能是'undefined'的对象]]
嗨,我宣布了这个功能图。这个想法是在JSON文件中获取一个对象并对其进行过滤。因此,我为每个键创建了一个过滤器功能。
const filterMap: Map< string, (ticket: Ticket, filter: request) => boolean > = new Map(); filterMap.set( "after", (ticket: Ticket, filter: request) => ticket.creationTime >= parseDate(filter.date) ); filterMap.set( "before", (ticket: Ticket, filter: request) => ticket.creationTime <= parseDate(filter.date) ); filterMap.set( "from", (ticket: Ticket, filter: request) => ticket.userEmail === filter.email ); filterMap.set("filter", (ticket: Ticket, filter: request) => ticket.content.includes(filter.filter) ); filterMap.set("", (ticket: Ticket, filter: request) => ticket.content.includes(filter.filter) );
我想在本代码中尝试使用它
const filteredTickets = tempTicketsData.filter((ticket:Ticket) => { if (request.kind) return ( // @ts-ignore filterMap.get(request.kind)(ticket, request) && // @ts-ignore filterMap.get("filter")(ticket, request) ); else { // @ts-ignore return filterMap.get("filter")(ticket, request); } });
标题中的问题出现在我评论过/// @ ts-ignore的地方?我该如何解决?
嗨,我宣布了这个功能图。这个想法是在JSON文件中获取一个对象并对其进行过滤。因此,对于每个键,我创建了一个过滤器功能。 const filterMap:Map
Map.prototype.get
函数的返回值是V | undefined
(假设V
是存储在映射中的值的通用类型),因为如果您尝试通过键中不存在的键来访问元素,映射,则函数将返回undefined
。由于这个事实,TypeScript无法在编译时知道您的键值对是否在映射中,因此您会收到错误消息,因为您之前没有检查值是否不是undefined
尝试使用它们。为此添加检查,错误将消失:
Map.prototype.get
函数的返回值是V | undefined
(假设V
是存储在映射中的值的通用类型),因为如果您尝试通过键中不存在的键来访问元素,映射,则函数将返回undefined
。由于这个事实,TypeScript无法在编译时知道您的键值对是否在映射中,因此您会收到错误消息,因为您之前没有检查值是否不是undefined
尝试使用它们。为此添加检查,错误将消失:
更多推荐
对象可能是'undefined',并且无法调用可能是'undefined'的对象]]
本文发布于:2024-05-07 13:00:56,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
- 上一篇: Snort预处理器之`DNP3`
- 下一篇: //C++ 枪战游戏
发布评论