TypeScript/tests/cases/conformance/generators/generatorExplicitReturnType.ts
Ron Buckton e8bf9584aa
Improve type checking and inference for Generators and Async Generators (#30790)
* Improve typing for Generators and Async Generators

* Add TReturn and TNext to Iterator, IterableIterator, etc.

* Update ts internal Iterator to be assignable from global Iterator

* Make 'done' optional in IteratorYieldResult

* Revert Iterable and IterableIterator to simpler versions plus other fixes

* Add additional inference tests

* Added additional tests

* PR cleanup and minor async iteration type fix

* Updated diagnostics message and added non-strict tests

* Fix expected arity of Iterator/AsyncIterator
2019-07-03 21:55:59 -07:00

28 lines
672 B
TypeScript

// @target: esnext
// @strictNullChecks: true
// @noImplicitReturns: true
// @noImplicitAny: true
function* g1(): Generator<number, boolean, string> {
yield; // error
yield "a"; // error
const x: number = yield 1; // error
return 10; // error
}
function* g2(): Generator<number, boolean, string> {
const x = yield 1;
return true;
}
declare const generator: Generator<number, symbol, string>;
function* g3(): Generator<number, boolean, string> {
const x: number = yield* generator; // error
return true;
}
function* g4(): Generator<number, boolean, string> {
const x = yield* generator;
return true;
}