microsoft / microsoft/TypeScript
Strange 2488 error involving overload resolution and this parameter type
Open
@rbuckton is already working on this.
Since Oct 31, 2024.
Needs Investigation
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.4k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 117
Description
🔎 Search Terms
yield ts2488 never iterator
🕗 Version & Regression Information
- This changed between versions 3.5.1 and 3.6.2
every-ts bisect gives: e8bf9584aa74aabfecb51a02edb13e3657508274 is the first bad commit
⏯ Playground Link
💻 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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.