Skip to content

#52836 breaks fragmented-store on DT #53382

Description

#52836 broke fragmented-store on Definitely Typed. Here's a repro that doesn't depend on React:

type StateHook<S> = () => [S, unknown];

type StoreUtils<Store extends { [K: string]: any }> = Omit<{
    [K in keyof Store as `use${Capitalize<string & K>}`]: StateHook<Store[K]>
}, 'useStore'> & {
  Provider: unknown,
  useStore: StateHook<Store>
};

declare function createStore<Store extends { [K: string]: any }>(store: Store): StoreUtils<Store>;

const { Provider, useUsername, useAge, useStore } = createStore({
  username: "Aral",
  age: 31
});

Activity

  1. fatcerberus commented on Mar 20, 2023

    @fatcerberus

    fragmented-store types

    I have literally never heard this term ever

  2. sandersn commented on Mar 20, 2023

    @sandersn
    MemberAuthor

    Sorry, it's the name of a package on Definitely Typed. Edited the OP for clarity.

  3. locked as resolved and limited conversation to collaborators on Oct 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

BugA bug in TypeScriptFix AvailableA PR has been opened for this issueRecent RegressionThis is a new regression just found in the last major/minor version of TypeScript.

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions