diff --git a/packages/@react-facet/shared-facet/src/context.ts b/packages/@react-facet/shared-facet/src/context.ts index 0c3cb092..eb44fb62 100644 --- a/packages/@react-facet/shared-facet/src/context.ts +++ b/packages/@react-facet/shared-facet/src/context.ts @@ -8,6 +8,8 @@ export const sharedFacetDriverContext = createContext<SharedFacetDriver>(dummyCo export const SharedFacetDriverProvider = sharedFacetDriverContext.Provider -export const useSharedFacet = <T>(sharedFacet: SharedFacet<T>): Facet<T> => { - return sharedFacet(useContext(sharedFacetDriverContext)) +type InferFacet<T> = T extends SharedFacet<infer U> ? Facet<U> : never + +export const useSharedFacet = <T extends SharedFacet<unknown>>(sharedFacet: T): InferFacet<T> => { + return sharedFacet(useContext(sharedFacetDriverContext)) as InferFacet<T> }