Skip to content

Generator that never returns should have return type 'never' #33430

@KSXGitHub

Description

@KSXGitHub

Search Terms

Suggestion

Generator function that yields T but never return should return Generator<T, never, unknown>

function * generator<T> (x: T) {
  while (true) yield x
}

const iter = generator(3) // expect: Generator<number, never, unknown>

Use Cases

Examples

Checklist

My suggestion meets these guidelines:

  • This wouldn't be a breaking change in existing TypeScript/JavaScript code
  • This wouldn't change the runtime behavior of existing JavaScript code
  • This could be implemented without emitting different JS based on the types of the expressions
  • This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
  • This feature would agree with the rest of TypeScript's Design Goals.

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions