TS ES6 - Строительная библиотека - Вопросы экспорта - PullRequest
0 голосов
/ 03 февраля 2019

Я собрал пакет серверной библиотеки, который я хочу использовать для всех своих программ, импортировав его как серверную программу «Base / Core».Чтобы использовать его как 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 нужен весь экспорт, но я не понимаю, как экспортировать все без проблем зависимости / импорта / экспорта.

1 Ответ

0 голосов
/ 08 февраля 2019

Исправлено это путем создания файла наборов index.d.ts со всеми необходимыми функциями экспорта / объявлениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...