我已经通过导入为“基础/核心”服务器程序构建了一个我想用于所有程序的服务器库程序包。要将其用作API,我正在index.ts
中进行此操作。
import { MainServer } from './server-app'; //Want for Type
export class Server {
private static _serverConfig = null;
private static _mainDB = null;
private static _supportDB = null;
private static _mainServer: MainServer = null; //Heres type
private static _client = '';
constructor(serverConfig, client: string) {
Server._serverConfig = serverConfig;
Server._client = client;
}
public static async connectAndRun() {
//Connect then Server._mainDB = db;
....
}
public static getClientName() {
return this._client;
}
public static getMainServer() {
return Server._mainServer;
}
public static getMainDB() {
return Server._mainDB;
}
public static getSupportDB() {
return Server._supportDB;
}
}
export * from './server-app'; //Need for the API to have access to all variables needed
在import { MainServer } from './server-app';
和export * from './server-app';
时出现错误,因为在server-app.ts
内,我正在执行更多这样的导出:
export * from './collections/app-version.collection';
在该文件中,我有这样的东西:
import { Server } from '../index';
import { AppVersionModel } from '../models/app-version.model';
let schema: any = {
_id: {
type: String,
optional: true
},
...
};
export const AppVersions: Model<ServerModel> = Server.getMainDB().model('app-versions', Schema);
因此,它尝试使用Server.getMainDB()
来定义服务器,因为服务器在构造服务器之前以及在连接和定义数据库之前都已在index.ts中导入,因此服务器未定义。
我了解为什么index.ts需要所有导出,但是我不明白如何在没有依赖项/导入/导出问题的情况下导出所有内容。
答案 0 :(得分:0)
通过生成带有所有需要的出口申报功能/常数的index.d.ts类型文件来解决此问题。