node.js - TypeORM uvoz relacije ne uspijeva


Koristim typeorm u nodejs projektu s esm-om. Trebam koristiti Relation omotač kako bih izbjegao kružne ovisnosti.

Dobivam ovu pogrešku kada pokušam koristiti omotač odnosa:

import { Column, Entity, OneToOne, PrimaryGeneratedColumn, Relation } from 'typeorm';
                                                           ^^^^^^^^
SyntaxError: The requested module 'typeorm' does not provide an export named 'Relation'

Datoteka koda:

import { Column, Entity, OneToOne, PrimaryGeneratedColumn, Relation } from 'typeorm';
import { Vehicle } from './vehicle';

@Entity({ name: 'vehicle_default_values' })
export class VehicleDefaultValues {
    @PrimaryGeneratedColumn({ unsigned: true })
    id: number;

    @Column({ type: 'int', unsigned: true, unique: true })
    model: number;

    @Column({ type: 'float', default: 550 })
    maxFuel: number;

    @Column({ type: 'boolean', default: false })
    isElectric: boolean;

    @Column({ type: 'float', default: 0.008 })
    fuelConsumption: number;

    @Column({ type: 'mediumint', unsigned: true, default: 200 })
    maxSpeed: number;

    @Column({ type: 'mediumint', unsigned: true, default: 50 })
    trunkVolume: number;

    @Column({ type: 'text', nullable: true })
    vehicleExtras: string;

    @OneToOne(() => Vehicle, (vehicle) => vehicle.vehicleDefaultValues)
    vehicle: Relation<Vehicle>;
}

Korištena verzija typeorm-a: 0.3.7

Odgovor #1

Ovo se vjerojatno događa zato što se tipovi ne uključuju prilikom pretvaranja datoteke u JavaScript. Uvozi Column, Entity, OneToOne, PrimaryGeneratedColumn su sve funkcije, dok je uvoz Relation tip.

S TypeScriptom 3.8 ili novijim možete izričito naznačiti da uvozite tipove ovako:

import { Column, Entity, OneToOne, PrimaryGeneratedColumn } from 'typeorm';
import type { Relation } from 'typeorm';

ili s TypeScriptom 4.5 ili novijim možete učiniti isto ovako:

import { Column, Entity, OneToOne, PrimaryGeneratedColumn, type Relation } from 'typeorm';

Povezani članci