TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor
With strictPropertyInitialization on, a class property declared without ? or a default isn’t set in the constructor.
has no initializer and is not definitely assigned in the constructor Meaning
Common in Angular components, TypeORM/NestJS entities and classes filled later by frameworks (dependency injection, decorators, ngOnInit). Choose: initialise it, make it optional, or tell TypeScript it’s assigned elsewhere with the definite-assignment assertion (!).
Common causes
- Property set in ngOnInit/lifecycle method instead of constructor
- Framework sets the property (decorators, ORM)
- Property genuinely may be missing
⚡ Quick fix
- Give a default value
- Mark it optional (name?: string)
- Use name!: string when a framework guarantees it
Detailed fix by platform
TypeScript
- typescript
@Input() title!: string; // set by Angular items: Item[] = []; // default value description?: string; // really optional
How to diagnose
- Who sets it — Constructor, lifecycle hook or framework?
- Config — strictPropertyInitialization in tsconfig
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
Other ways to find it
Where this error sits
Origin: On your device. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 14 Oct 2026