class Base { *values(): Generator { yield 1; } } class Replaced extends Base { *values(): Generator { yield 2; } } const source: Base = new Replaced(); for (const value of source.values()) console.log(value);