NG8109 means an Angular template interpolation refers to a signal without calling it. If the template needs to display the signal’s value as text, change {{ mySignal }} to {{ mySignal() }}. The diagnostic is part of Angular’s extended diagnostics and requires strictTemplates to be enabled. Angular’s NG8109 reference
What NG8109 detects
Angular names this diagnostic interpolatedSignalNotInvoked. It flags a signal used without invocation inside a text interpolation. Signals are zero-argument functions: calling one returns its current value. An interpolation that contains only the signal reference does not call it, so Angular warns that the template should invoke the signal to render its value. Angular’s NG8109 reference
As an Amazon Associate I earn from qualifying purchases.
How to fix NG8109
Find the expression identified in the diagnostic and add parentheses when the interpolation should display the signal’s value:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →@Component({
template: `<div>{{ mySignal() }}</div>`,
})
class MyComponent {
mySignal: Signal<number> = signal(0);
}
The incorrect form is {{ mySignal }}; the corrected form is {{ mySignal() }}. Apply this fix to a text interpolation that needs the signal’s value. NG8109 is specifically about interpolations; it is not a blanket instruction to call a signal wherever its object is intentionally used or passed in another kind of binding. Angular’s NG8109 reference
#1 Best Overall
Why Angular reports it—or doesn’t
Angular extended diagnostics require strictTemplates. NG8109 has no additional configuration prerequisite. Extended diagnostics are warnings by default, and Angular lets projects configure individual checks or the default diagnostic category as warnings, errors, or suppressed. Angular extended diagnostics overview
If the diagnostic does not appear, check whether strictTemplates is enabled. If it appears as a build failure, check the project’s extended-diagnostics settings: the check may have been configured as an error, or warnings may be treated as errors by the build setup.
Rank #2
Suppressing NG8109
Angular provides a check-specific setting in tsconfig.json:
{
"angularCompilerOptions": {
"extendedDiagnostics": {
"checks": {
"interpolatedSignalNotInvoked": "suppress"
}
}
}
}
Suppression silences this check; it does not invoke the signal or change what the template renders. For the usual case—displaying a signal’s current value—the code correction is to add (). Angular’s NG8109 reference
Rank #3
Distinguishing NG8109 from nearby diagnostics
The diagnostic code helps identify what kind of expression Angular found:
- NG8109: an uninvoked signal in a text interpolation. Angular’s NG8109 reference
- NG8117: an uninvoked ordinary function in a text interpolation. Angular’s NG8117 reference
- NG8111: an uninvoked function in an event binding. Angular’s NG8111 reference
These checks concern different expression types or template contexts. If the expression is not a signal, adding parentheses based solely on an NG8109 example may be the wrong fix; use the actual diagnostic and the expression’s type to guide the correction.
Rank #4
Version and migration notes
Angular notes that new extended diagnostics can be added or enabled in minor releases. If a project treats the default diagnostic category as errors, review the extended-diagnostics semver guidance when upgrading Angular. Angular extended diagnostics overview
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteAngular’s v19 signal-input migration guidance describes an automated migration that converts @Input() fields to signal input() members and updates references to call the migrated signal, including in templates. That page is specifically guidance for the v19 migration; do not assume its instructions apply unchanged to every Angular release. Angular v19 signal-input migration
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




