Экспорт типа из другого модуля со всей информацией о типе - PullRequest
0 голосов
/ 22 октября 2018

У меня есть модуль, который содержит один экспорт.Это фабричная функция для создания bunyan logger:

export default function createLogger(options: LoggerOptions, /*...*/): Logger {
    // returns a bunyan Logger with some extra stuff for our company
}

Я хочу использовать этот модуль в других приложениях и хочу включить информацию о типе экземпляра bunyan Logger, так что у нас есть intellisense для таких вещей, как logger.info, logger.warn и т.д.

Однако, когда я импортирую это в другое приложение, я вижу, что моя IDE думает, что регистратор имеет тип any:

type is any

Isэто потому что bunyan не экспортирует тип Logger?Или потому, что в моем приложении я только установил свой пользовательский пакет, а не bunyan?Я бы предпочел, чтобы пользователям пользовательского пакета не приходилось устанавливать оба моих пакета и bunyan.

Есть ли способ это исправить, т. Е. Иметь intellisense на логин bunyan без необходимостиотдельно установить bunyan?

1 Ответ

0 голосов
/ 22 октября 2018

Я нашел решение сам.Поскольку bunyan экспортирует пространство имен, мне пришлось изменить свой index.ts на:

import * as Logger from "bunyan";
import createLogger from "./createLogger";

export {
    createLogger,
    Logger
};

Обратите внимание, как я делаю import * as Logger from "bunyan", который импортирует все из bunyan и называет его «Logger».Теперь все работает как положено.

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