TypeScript运行时错误:module_1.Class不是构造函数

时间:2020-03-01 20:43:09

标签: node.js typescript class

我已经建立了一个名为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>;
}

1 个答案:

答案 0 :(得分:0)

我相信在“ index.ts”中,您需要“从*。/ ServiceConfiguration”中导出* 您当前的导出对我来说更像是类型导出。