basicamente, o que eu quero fazer é criar um contexto onde eu passe de forma genérica como:
no componente pai:
const [val, setVal] = useState<ValType>();
<ContextProvider<!ValType!> val={val}>
..children components
</ContextProvider>
em um dos componentes filhos:
const { val } = useContext();
aqui não preciso passar no genérico e val pega o genérico dado no provedor de contexto. Isso é para obter intellisense ao consumir val.
Isso é possível com reação pura?
Tentei colocá-lo em uma classe ou gancho (provedor e consumidor no mesmo componente), mas não pareceu resolver meu problema
O que você está tentando alcançar não é possível diretamente com o React puro. O contexto do React não infere tipos automaticamente com base no genérico fornecido a um provedor. No entanto, você ainda pode obter algo semelhante criando um gancho personalizado que fornece acesso digitado ao valor de contexto.
Crie um gancho personalizado que forneça acesso digitado ao valor de contexto:
Em seus componentes, use o hook useVal