Skip to content

Generic not inferred inside mapped type parameter #29479

Open
@OliverJAsh

Description

@OliverJAsh

TypeScript Version: 3.2.2

Search Terms: generic inference {} createStructuredSelector mapped types

Code

type Selector<S, R> = (state: S) => R;

declare function createStructuredSelector<S, T>(
    selectors: { [K in keyof T]: Selector<S, T[K]> },
): Selector<S, T>;

type State = { foo: number };
declare const mySelector: Selector<State, boolean>;

// Workaround: use explicit generics
// const result = createStructuredSelector<State, { mySelector: boolean }>({

// `State` generic incorrectly inferred as `{}`.
const result = createStructuredSelector({
    // Unexpected type error under `strictFunctionTypes` due to bad inference (above)
    mySelector,
});

result;

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptDomain: Type InferenceRelated to type inference performed during signature resolution or `infer` type resolution

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions