TS2564 TypeScript Origin: On your device Last updated 14 Oct 2026

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.

Exact message you may see has no initializer and is not definitely assigned 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

  1. Give a default value
  2. Mark it optional (name?: string)
  3. Use name!: string when a framework guarantees it

Detailed fix by platform

TypeScript

  1. typescript
    @Input() title!: string;          // set by Angular
    items: Item[] = [];                // default value
    description?: string;              // really optional

How to diagnose

  1. Who sets it — Constructor, lifecycle hook or framework?
  2. 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:

Where this error sits

Origin: On your device. Errors that are often confused with or caused by this one (click to open):

Array to string conversion — Warning: Array to string conversion (PHP)Array to string conve…AttributeError — AttributeError: 'X' object has no attribute 'y' (Python)AttributeErrorCannot convert value of type — Swift: Cannot convert value of type 'X' to expected argument type 'Y' (iOS)Cannot convert value …Cannot use object as array — Fatal error: Uncaught Error: Cannot use object of type stdClass as array (PHP)Cannot use object as …ClassCastException — java.lang.ClassCastException: class A cannot be cast to class B (Java)ClassCastExceptionImplicit float to int — Deprecated: Implicit conversion from float 2.5 to int loses precision (PHP)Implicit float to intNG0100 — Angular: NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked (Angular)NG0100not a constructor — TypeError: x is not a constructor (JavaScript)not a constructorTS2564

Explore the map of this error Full error map →

🧠 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.