Skip to content

Incorrect overload is used for pipe when first function has optional parameter #29913

Description

TypeScript Version: 3.3.1

Search Terms:

Code

  • when strictFunctionTypes is disabled
  • when first composed function parameter is optional
  • when first pipe overload is zero parameters for first function
declareconstpipe: {// 0-argument first function// Workaround: disable this overload<A>(a: ()=>A): ()=>A;// 1-argument first function<A,B>(ab: (a: A)=>B): (a: A)=>B;};// Expected type: `(a: {} | undefined) => number`// Actual type: `() => number`constfn=pipe((_a?: {})=>1);

Related Issues:
#29904

Metadata

Metadata

Assignees

No one assigned

    Labels

    Working as IntendedThe behavior described is the intended behavior; this is not a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions