Как использовать импорт 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 по умолчанию есть эта опция, но она прокомментирована по умолчанию