Как использовать импорт ES6 с модулем npm 'request'

В ES6- если какой-то код TypeScript (проект, над которым я работаю, выполняется как в браузере, так и на сервере Node, я бы хотел расшатать пакет браузера), я пытаюсь исключить использование require и только использовать import, Но когда я делаю это...

import * as request from 'request';

и впоследствии позвонить request()Я получаю ошибки во время выполнения в Node (после использования babel, чтобы сделать код ES5, и, следовательно, Node, совместимым):

TypeError: request is not a function

С другой стороны, если я сделаю это:

import request from 'request';

тогда компилятор TypeScript жалуется

error TS1192: Module '"<mypath>/node_modules/@types/request/index"' has no default export.

Если я вручную изменить скомпилированный код JS для использования import request from 'request';, это на самом деле работает нормально... как я могу заставить компилятор TS принять этот код и просто передать его?

1 ответ

Решение

Можете ли вы попробовать добавить allowSyntheticDefaultImports: true на ваш

tsconfig.json

В Typescript все еще остается открытым вопрос.

В основном вам нужно удалить комментарий в tsconfig.json в строке 46, потому что в конфигурационном файле ts по умолчанию есть эта опция, но она прокомментирована по умолчанию

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