+
Skip to content

Typescript type for just-partition does not narrow type correctly when using a type guard #584

Open
@vidhill

Description

@vidhill

The Typescript type for just-partition does not narrow type correctly when using a type guard

I'm not sure what the best way to report/describe TS issues, so I will use screenshots,
I hope that that is okay,

In contrast with how using Array.filter() correctly narrows the type

The type returned from partition, when using the example type guard, is a tuple of unions of the possible values

[PromiseRejectedResult | PromiseFulfilledResult<boolean>, PromiseRejectedResult | PromiseFulfilledResult<boolean>]
Screenshot 2024-09-03 at 19 47 38

What I would really like/expect is that the types would be correctly inferred, in the same way that Array.filter() does

[ PromiseFulfilledResult<boolean>, PromiseRejectedResult ]

I can work around this by casting the result, but that is not ideal

Screenshot 2024-09-03 at 19 50 50

I have a suggested fix, using a function Type override

I will open a PR,

I just wanted to link the PR to an issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载