首页 > 解决方案 > 打字稿和使用新地图在输入第二个参数作为组件时遇到问题

问题描述

所以,我有一个地图,值是组件,除非我也输入所有道具,否则我似乎无法正确输入它。这似乎太过分了。我只希望类型是一个组件,而不是担心所有的道具。我尝试了 typeof React Element 等。没有运气。

我只想要一个非常通用的组件类型。

enum ModalTypes {
  ADD_MODAL = 'addModal',
  REMOVE_MODAL = 'removeModal',
  UPDATE_MODAL = 'updateModal',
}

const modalMap: Map<ModalTypes, ReactElement> = new Map([
  [ModalTypes.ADD_MODAL, ModalAdd],
  [ModalTypes.REMOVE_MODAL, ModalRemove],
  [ModalTypes.UPDATE_MODAL, ModalUpdate]
]);


 const Modal = (modalMap.has(type)) ? modalMap.get(type) : null;

我收到一个错误:const modalMap,因为“ReactElement”缺少这些组件上的所有道具。但我不想对它这么严格。我只希望 Map<ModalMap, *****> 中的第二个参数是一个非常通用的反应组件。我尝试了各种方法,但无法正常工作。

标签: typescript

解决方案


推荐阅读