我已经建立了一个名为luna-pluto的库,它是一个TypeScript库,并从我导入库的主应用(如下所示)将其发布到私有的关系存储库中
let num: number = 1;
let s = '{"a":"abc"}';
let _j = JSON.parse(s);
interface MyJSON {
[key: string]: number
}
let j = _j as MyJSON
num = j.a;
我正在尝试实例化类ServiceConfiguration
import { ServiceConfiguration } from 'luna-pluto';
在调试或尝试运行应用程序时,会引发以下错误:
private _serviceConfiguration: any;
this._serviceConfiguration = new ServiceConfiguration();
这是我的类ServiceConfiguration.ts
Error: luna_pluto_1.ServiceConfiguration is not a constructor
我的index.js
export class ServiceConfiguration {
public req: HttpRequests;
public configuration: IConfig;
public packageInfo = new PackageJSON();
public async applyConfig(configuration: IConfig) {
this.configuration = configuration;
await this.applyRequestConfig();
}
private async applyRequestConfig(): Promise<any> {
const factory = new HttpFactory();
const httpConfig = this.configuration.get('api') as HttpOptions;
this.req = await factory.getProvider(httpConfig);
}
}
我的index.d.ts
"use strict";
exports.ServiceConfiguration = require("./lib/ServiceConfiguration");
exports.NullHttpRequests = require("./lib/persistence/http/NullHttpRequests");
都使用TypeScript 3.4.1,当我将小型库移动到相同的.ts文件中时,它可以很好地工作并返回预期的数据。我相信该库中的代码很好。
P.S。尝试以其他方式导入库,但仍然无法正常工作。例如
export class ServiceConfiguration {
configuration: IConfig;
packageInfo: PackageJSON;
requests: HttpRequests;
applyConfig(configuration: IConfig): Promise<any>;
}
答案 0 :(得分:0)
我相信在“ index.ts”中,您需要“从*。/ ServiceConfiguration”中导出* 您当前的导出对我来说更像是类型导出。