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.
Seen on:
TypeScript
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
🧠 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.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 7 Oct 2026