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';
