jamiebuilds / unstated-next

200 bytes to never think about React state management libraries ever again

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to produce types for Containers?

colthreepv opened this issue · comments

In certain cases I want to extract functions leveraging containers away from component files, for example

import { longFunction } from './state-helpers'

const Builder: React.FC = () => {
  const app = AppContainer.useContainer()
  const complicatedValue = useMemo(() => longFunction(app), [app])
  return (...)
}

for now I have used on my state.ts something like this:

export const AppContainer = createContainer(useApp)
export type AppContainerState = ReturnType<typeof useApp>

and on my state-helpers.ts my function would be like:

export const longFunction = (app: AppContainerState) => app

The question is, there is anything more elegant than ReturnType<typeof useApp> ?