# TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor

**Code:** `TS2564` · **Category:** TypeScript · **Seen on:** TypeScript

With strictPropertyInitialization on, a class property declared without ? or a default isn’t set 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

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

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/typescript/ts2564-property-has-no-initializer)
