Hvordan man har en "export default" med flere typer og værdier i et TypeScript-modul?
Jeg kan nemt have en eksportstandard med flere værdier:
class Car {...}
class Bus {...}
export default { Car, Bus }
Jeg kan også nemt have en eksport standard af en type
export default interface Airplane {...}
Men jeg kan ikke have en standardeksport af flere typer
interface Airplane {...}
interface Motorcycle {...}
// 'Airplane' only refers to a type, but is being used as a value here. ts(2693)
export default { Airplane, Motorcycle }
Eller af en blanding af flere typer og værdier.
class Car {...}
interface Motorcycle {...}
// 'Airplane' only refers to a type, but is being used as a value here. ts(2693)
export default { Car, Airplane }
Hvordan kan jeg opnå dette?
Svar #1
Overvej export = syntaks.
Syntaxen export = angiver et enkelt objekt, der eksporteres fra modulet. Dette kan være en klasse, interface, navnerum, funktion eller enum.
Køretøj.ts
namespace Vehicle {
export class Car {
// ...
}
export class Bus {
// ...
}
}
export = Vehicle;
Test1.ts
import Vehicle from './Vehicle';
const car = new Vehicle.Car();
const bus = new Vehicle.Bus();
Test2.ts
import { Bus, Car } from './Vehicle';
const car = new Car();
const bus = new Bus();
Se https://www.typescriptlang.org/docs/handbook/modules.html#export--and-import--require
Svar #2
Faktisk, ved at eksportere på denne måde:
class Car {...}
interface Motorcycle {...}
// 'Airplane' only refers to a type, but is being used as a value here. ts(2693)
export default { Car, Airplane }
Det du gør, er at **eksportere et standardobjekt med to egenskaber**.
Senere kan du i din kode importere det således:
// name is as you like, its default import
import transport from transport;
og brug det sådan:
....new transport.Car()
....new transport.Plane()
