Skip to content

'Any' on anonymous function argument response in genericΒ #47858

@Rjpdude

Description

@Rjpdude

Bug Report

πŸ”Ž Search Terms

  • Anonymous function response

πŸ•— Version & Regression Information

4.5 and below

⏯ Playground Link

Simplified:

https://www.typescriptlang.org/play?#code/GYVwdgxgLglg9mABFATgQzAZ2HFBbAHgHlEBTADylLABNNEBvRAbQGtSBPALkU1RjABzALo8AFADopaFIMw8MHZsICUiALwA+RGJmCeYEHgBGpFGq2IAbnBg1EAX01iBABxBQeRNQwBQvh39UDGxcPDE-RCjEYDAARnE3Dx4+FAFBC20xGjQoNEzGf2jHABpfYuAAJkSwd09efiECyOLolFIoEBQkbNz8jW0-ctaowOKHMoqwAGYXWuSGtKbCkaj2zu6dHLzmotWx6ImAlV8gA

Actual:

https://www.typescriptlang.org/play?useUnknownInCatchVariables=true&ts=4.5.4#code/C4TwDgpgBAsghiARhACgJwPYFsCWBnCAHgBUA+KAXimKgB8p1t8iyAoUSKAZWDmAgBmAVwA2AJQh5CXclXhJUmXAUIAKOGgDmALm4BKSuS50oANww4AJqXbhoPPoNEBBAMbAcGAHYBhNBD4MNGlZKFUAOkiNTTxdOC8QAG0AXQMKI15+YXFJENZWHC9+NAE4V2g3D28uCGAQqABvVigWqESAawgQXTxgNELNZN0HLJd3T19-QOCZVgBffMLi0vKoSomACXjLEQhg5ygIAA9+L0s8KHik5PIm1rDI8OjYtb1dcyt5xaK9lYq8EBeVzrbxbM67faHE4QM4XK4pW7NVoRKJaF7ON4MJTMQgfaxfViuERwPAXFAYSzSAA0a0R9zA-VMjighRwHjgIhGEGGSJaDJwTP4l3G1Vqumc+Xurm8vTQQncQVUrPZnMy3O4NLKVS8NWAlEac0uFwxjV59ygwAAFvhwsqcByufq7Q61Wb7labVqJrr9V7RcAzQszd5CAB5KGnc5rEU62ohUiqDCIABWulDmPJlK4NIOADJGlA3a1EgBpFleKCdEAYARQUNDOul5IRmFRlFPNG6QoCPYMNLkbu9sRF81QAD8UDELdhWKYKiuNlHS9aE+cAKBIK8YJ2e0IKEXy6X4pj24he4Ph6guiEXnaXgwAHcvIG6Uv-MAhGgK14IA+GBTVA9PBbS8Nl7VVRw9EDAlpS8XooDQfUfz-TNVAaKBpRvYBdAARgABigOYoPucJvDQkcjUBVwMMtCBXHaVQqx6PoBgMO5LygAB6TiMJlPUKyoOAHzgNlKKBHwORERiumIjj30-CtVDwftTQ481uKgYDMKKKAAGoqGfNSFmXOYqQov0vF0VRLKgLwhCwZA0BU9jL3kr8wmUwxVLU1oNK0jAsL0gyKPuYyl1M8zLEsKybLshy9hUpTnJC1p-MC-TbIosKWiI1ggA

πŸ’» Code

function transform<O extends { [key: string]: (...args: any[]) => (arg: number) => void }>(input: O) {

}

transform({
    fn1: (input: string) => (data) => {

    },
    f2: (input: string) => {
        return (data) => { // coming back as any instead of number

        }
    },
    fn3(input: string) {
        return (data) => {

        }
    },
})

πŸ™ Actual behavior

The generic argument in the return function is coming back as any instead of number when it's returned as an anonymous inline function.

πŸ™‚ Expected behavior

Expecting the inline anonymous function response to be of type number.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptDomain: check: Type InferenceRelated to type inference performed during signature resolution or `infer` type resolutionHelp WantedYou can do this

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions