打字稿对象可能是'undefined'

时间:2019-01-29 09:43:38

标签: typescript

在下面的代码中,我想创建一个函数来收集所有自定义事件处理程序,这似乎是错误的。

但是我确实使用Fri来确保handlerMap[type] || []存在。 我想念什么?

handlerList

PS。将代码粘贴到TypeScript playground中以查看错误。

@evayly提到,我们需要打开type EventType = 'click' | 'dblclick' | 'mouseup' | 'mousedown' | 'mousemove' interface EventHandlerSet<P extends EventType> { h: (event: HTMLElementEventMap[P]) => void ctx: any } const handlerMap: { [P in EventType]?: Array<EventHandlerSet<P>> } = {} function addHandler<P extends EventType>( type: P, handler: (event: HTMLElementEventMap[P]) => void, context?: any, ) { const handlerList= handlerMap[type] || [] // Error here: Object is possibly 'undefined' handlerList.push({ h: handler, ctx: context || this }) handlerMap[type] = handlerList }

0 个答案:

没有答案