e8bf9584aa
* 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
28 lines
672 B
TypeScript
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;
|
|
} |