ghoullier / typescript-decorator-esm-issue

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

typescript-decorator-esm-issue

"experimentalDecorators": true and "type": "module" does not support cyclic references.

src/user.ts

import { Building } from "./building.js";
import { ManyToOne } from "./decorators.js";

export class User {
  @ManyToOne(Building)
  house!: Building;
}

src/building.ts

import { OneToMany } from "./decorators.js";
import { User } from "./user.js";

export class Building {
  @OneToMany(Building)
  residents!: User[];
}

Steps to reproduce

nvm use
pnpm install
pnpm run start
> typescript-decorator-esm-issue@1.0.0 start ~/typescript-decorator-esm-issue
> tsc && node dist/index.js

file://~/typescript-decorator-esm-issue/dist/user.js:8
    ManyToOne(Building),
              ^

ReferenceError: Cannot access 'Building' before initialization
    at file://~/typescript-decorator-esm-issue/dist/user.js:8:15
    at ModuleJob.run (node:internal/modules/esm/module_job:217:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:316:24)
    at async loadESM (node:internal/process/esm_loader:34:7)
    at async handleMainPromise (node:internal/modules/run_main:66:12)

About


Languages

Language:TypeScript 100.0%