Cannot access variable before initialization error when variable is initialized in another file
I have something like this:
photo.ts
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from "typeorm"
import { User } from "./User"
@Entity()
export class Photo {
@PrimaryGeneratedColumn()
id: number
@Column()
url: string
@ManyToOne(() => User, (user) => user.photos)
user: User
}
user.ts
import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from "typeorm"
import { Photo } from "./Photo"
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number
@Column()
name: string
@OneToMany(() => Photo, (photo) => photo.user)
photos: Photo[]
}
Am running using nodemon and i have ts-node installed, but am getting the following error:
ReferenceError: Cannot access 'User' before initialization
at file:///path/to/project/src/database/entities/photo.ts:14:9
at ModuleJob.run (node:internal/modules/esm/module_job:194:25)
This error beats me as I don't even know where to start because, frankly, I have never encountered the error before, any help would be greatly appreciated.
Versions:
node: v18.17.1
ts-node: v10.9.1
nodemon: v3.0.1
typescript: v5.2.2