diff --git a/packages/core/schematics/migrations/output-migration/output-migration.spec.ts b/packages/core/schematics/migrations/output-migration/output-migration.spec.ts index 905d85e4194..cd27b3dab6d 100644 --- a/packages/core/schematics/migrations/output-migration/output-migration.spec.ts +++ b/packages/core/schematics/migrations/output-migration/output-migration.spec.ts @@ -198,6 +198,35 @@ describe('outputs', () => { }); }); + it('should not insert a TODO comment for emit function with void type', async () => { + await verify({ + before: ` + import {Directive, Output, EventEmitter} from '@angular/core'; + + @Directive() + export class TestDir { + @Output() someChange = new EventEmitter(); + + someMethod(): void { + this.someChange.emit(); + } + } + `, + after: ` + import {Directive, output} from '@angular/core'; + + @Directive() + export class TestDir { + readonly someChange = output(); + + someMethod(): void { + this.someChange.emit(); + } + } + `, + }); + }); + it('should insert a TODO comment for emit function with type', async () => { await verify({ before: ` diff --git a/packages/core/schematics/migrations/output-migration/output-migration.ts b/packages/core/schematics/migrations/output-migration/output-migration.ts index ecee9bc66ac..ae3e7bca304 100644 --- a/packages/core/schematics/migrations/output-migration/output-migration.ts +++ b/packages/core/schematics/migrations/output-migration/output-migration.ts @@ -477,7 +477,7 @@ function addCommentForEmptyEmit( if (!propertyDeclaration) return; const eventEmitterType = getEventEmitterArgumentType(propertyDeclaration); - if (!eventEmitterType) return; + if (!eventEmitterType || eventEmitterType === 'void') return; const id = getUniqueIdForProperty(info, propertyDeclaration); const file = projectFile(node.getSourceFile(), info);