Skip to content

Strange 2488 error involving overload resolution and this parameter typeΒ #60374

@yume-chan

Description

@yume-chan

πŸ”Ž Search Terms

yield ts2488 never iterator

πŸ•— Version & Regression Information

  • This changed between versions 3.5.1 and 3.6.2

every-ts bisect gives: e8bf958 is the first bad commit

⏯ Playground Link

https://www.typescriptlang.org/play/?module=1&ts=5.7.0-dev.20241030#code/CYUwxgNghgTiAEAzArgOzAFwJYHtVNQB4AVAPgAoA3KCZEALnnIEp4BeU+Y5xgbyZ5d4AXwDcAKFCRYCFOmx4CJCtVoMuggJIYQMKACMIIQmgDWqHAHdUpCeJAAPAA44YGeNIDOn+AEF4vOLwwfBQ7ATkcpi4qABUTBgAFliejL6sgSFZ8ACeWCAQwPGIqOQAjMwSWcKV4kEh+uElkWjRePHkSSlpGfXZHnie7joAtk5NpRVV-bn5hfGjTtPBNRLC4kA

πŸ’» Code

declare function fn<T>(value: () => T): { (): T };
declare function fn<T>(value: T): Iterable<unknown>;

export class A {
    a = fn(function* (this: A) {
        yield* fn(1); // error
    });

    b = fn(function* (this: A) {
        const temp = fn(1); // ok
        yield* temp;
    });
}

πŸ™ Actual behavior

src/error.ts:6:16 - error TS2488: Type 'never' must have a '[Symbol.iterator]()' method that returns an iterator.

6         yield* fn(1);
                 ~~~~~

πŸ™‚ Expected behavior

No error, as in A.b

Additional information about the issue

No response

Metadata

Metadata

Assignees

Labels

Needs InvestigationThis issue needs a team member to investigate its status.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions