generatorTypeCheck21.ts(1,13): error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor.
generatorTypeCheck21.ts(2,25): error TS2564: Property 'y' has no initializer and is not definitely assigned in the constructor.
generatorTypeCheck21.ts(4,5): error TS2322: Type 'undefined' is not assignable to type 'Foo'.
generatorTypeCheck21.ts(5,13): error TS2488: Type 'Bar' must have a '[Symbol.iterator]()' method that returns an iterator.


==== generatorTypeCheck21.ts (4 errors) ====
    class Foo { x: number }
                ~
!!! error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor.
    class Bar extends Foo { y: string }
                            ~
!!! error TS2564: Property 'y' has no initializer and is not definitely assigned in the constructor.
    function* g(): IterableIterator<Foo> {
        yield;
        ~~~~~
!!! error TS2322: Type 'undefined' is not assignable to type 'Foo'.
        yield * new Bar;
                ~~~~~~~
!!! error TS2488: Type 'Bar' must have a '[Symbol.iterator]()' method that returns an iterator.
    }