Я создаю приложение с помощью TypeScript и использую WebPack для переноса и упаковки.Я использую конечный результат этого приложения на чистом веб-сайте JavaScript.В этом приложении я определил перечисление ниже:
export const enum ShapeType {
Actor,Ellipse,Border,Connector
}
Я также экспортировал его как:
export { ShapeType } from "./shape/shape.type";
Но когда я пытаюсь использовать его как:
var createdShape = new shapeFactory.createShape(ShapeType.Ellipse);
Он не создает форму, и при отладке я вижу эту ошибку: «ShapeType не определен» Я также пытаюсь найти ShapeType в конечном файле комплекта JavaScript, но я обнаружил, что нетShapeType тоже в файле комплекта.У меня нет проблем, когда я импортирую его в TS.
Код ниже - это код js.ChartDraw - это имя библиотеки, которое я определил в файле конфигурации моего веб-пакета.Все остальные функции работают нормально.Единственная проблема связана с
var aa = shapeFactory.createShape(ChartDraw.ShapeType.Ellipse);
, потому что ShapeType не определен.
var svg = new ChartDraw.Svg("drawing");
var shapeFactory = new ChartDraw.ShapeFactory(svg);
var ob1 = null;
var ob2 = null;
//aa.draw();
var cc = new ChartDraw.Connector(svg);
var bb = new ChartDraw.MouseReader();
bb.setExportFunction(info => {
var aa = shapeFactory.createShape(ChartDraw.ShapeType.Ellipse);
aa.rectangularPosition = info;
aa.draw();
if (ob1 == null)
ob1 = aa;
else {
ob2 = info;
cc.beginObject = ob1;
cc.endObject = aa;
cc.draw();
}
});
И код ниже, где я импортирую ShapeType:
import { ShapeType } from "./shape.type";
import { Actor } from "./actor";
import { Svg } from "../svg";
import { Shape } from "./shape";
import { Ellipse } from "./ellipse";
export class ShapeFactory {
private svg: Svg;
constructor(svg: Svg) {
this.svg = svg;
}
public createShape(shape: ShapeType):Shape {
switch (shape) {
case ShapeType.Actor:
let actor = new Actor(this.svg);
return actor;
case ShapeType.Ellipse:
let ell = new Ellipse(this.svg);
return ell;
}
}
}