NodeJS: экспорт выражений Typescript из оболочки

Я создал оболочку ExpressJS для частного репозитория npm, и я хочу экспортировать свою библиотеку и сам expressjs, например:

index.ts

export { myExpress } from './my-express'; // my express wrapper
import * as express from 'express';
export = express; // doesn't works!

как я могу сделать это в машинописном тексте?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
265
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема с Express 4 заключается в том, что он использует устаревшее соглашение об экспорте CommonJS, которое несовместимо с модулями ES, оно содержит единственный экспорт (фабрика express()), остальные экспортные параметры определяются как его свойства. Он использует унаследованный синтаксис TypeScript export = ..., поэтому его нельзя повторно экспортировать как модуль ES export * from 'express', а также нельзя использовать синтетический реэкспорт по умолчанию, export { default } from 'express'.

Учитывая, что модуль должен повторно экспортировать экспорт из express и экспорт myExpress из ./my-express, он должен быть:

import * as express from 'express';
export default express;

export { myExpress } from './my-express';

Его можно импортировать как:

import express, { myExpress } from '...';

Для обычного модуля ES * можно реэкспортировать:

export * from 'some-package';
export { myExport } from './my-package';
export * from 'express'; поднять ошибку ts [ts] Module '"index"' uses 'export =' and cannot be used with 'export *'.
ar099968 11.01.2019 08:55

Спасибо за уведомление. Действительно, модуль содержит устаревший экспорт. Я обновил ответ.

Estus Flask 11.01.2019 09:21

Синтаксис export = express; неверен.

Вы захотите сделать либо:

import { myExpress } from './my-express';
import * as express from 'express';

export {
  myExpress,
  express
}

или

import { myExpress } from './my-express';
export { myEpxress }

import * as express from 'express';
export { express }

Другие вопросы по теме