Which @angular/* package(s) are the source of the bug?
compiler
Is this a regression?
No
Description
I have an Angular application where I defined an Output() event in a child component and then bound to it from the parent template.
I expected the TypeScript compiler or Angular template type checking to fail if I used a wrong or non‑existing output name in the parent template. However, the app still compiles and runs successfully even when the output name used in the parent template does not match any actual Output() defined on the child component.
What happens instead is that Angular accepts the binding silently, there is no build‑time error or runtime warning, and the event handler in the parent is simply never triggered, which makes this class of bugs (typos or stale output names) hard to detect
Please provide a link to a minimal reproduction of the bug
https://stackblitz.com/edit/stackblitz-starters-fexanjc4?file=src%2Fmain.ts
Please provide the exception or error you saw
I expect an error in the compilation/build
Please provide the environment you discovered this bug in (run ng version)
Angular CLI : 21.0.2
Angular : 21.0.3
Node.js : 20.19.1
Package Manager : npm 10.8.2
Operating System : linux x64
┌───────────────────────────┬───────────────────┬───────────────────┐
│ Package │ Installed Version │ Requested Version │
├───────────────────────────┼───────────────────┼───────────────────┤
│ @angular/animations │ 21.0.3 │ ^21.0.3 │
│ @angular/build │ 21.0.2 │ ^21.0.2 │
│ @angular/cli │ 21.0.2 │ ^21.0.2 │
│ @angular/common │ 21.0.3 │ ^21.0.3 │
│ @angular/compiler │ 21.0.3 │ ^21.0.3 │
│ @angular/compiler-cli │ 21.0.3 │ ^21.0.3 │
│ @angular/core │ 21.0.3 │ ^21.0.3 │
│ @angular/forms │ 21.0.3 │ ^21.0.3 │
│ @angular/platform-browser │ 21.0.3 │ ^21.0.3 │
│ @angular/router │ 21.0.3 │ ^21.0.3 │
│ rxjs │ 7.8.2 │ ^7.8.1 │
│ typescript │ 5.9.3 │ ^5.9.3 │
│ zone.js │ 0.16.0 │ ^0.16.0 │
Anything else?
No response
Which @angular/* package(s) are the source of the bug?
compiler
Is this a regression?
No
Description
I have an Angular application where I defined an
Output()event in a child component and then bound to it from the parent template.I expected the TypeScript compiler or Angular template type checking to fail if I used a wrong or non‑existing output name in the parent template. However, the app still compiles and runs successfully even when the output name used in the parent template does not match any actual Output() defined on the child component.
What happens instead is that Angular accepts the binding silently, there is no build‑time error or runtime warning, and the event handler in the parent is simply never triggered, which makes this class of bugs (typos or stale output names) hard to detect
Please provide a link to a minimal reproduction of the bug
https://stackblitz.com/edit/stackblitz-starters-fexanjc4?file=src%2Fmain.ts
Please provide the exception or error you saw
Please provide the environment you discovered this bug in (run
ng version)Anything else?
No response