Я работаю над тем, чтобы разрешить файлы .ts в старой кодовой базе .js. База кода .js использует импорт es6 и переносит их с помощью babel в commonjs.
Моя стратегия заключалась в том, чтобы полностью заменить babel на Typescript и позволить TS компилироваться таким образом, чтобы я мог использовать старый код с новым .tsфайлы.
Моя проблема в том, когда я смешиваю импорт по умолчанию и имена. У меня есть много мест в моих старых файлах .js, которые содержат импорт, который выглядит следующим образом:
import Sequelize, { Op, literal } from 'sequelize'
class someModel extends Sequelize.model {
const someQuery = literal(someValue);
}
Это прекрасно работает с использованием babel. Однако, используя Typescript, он компилируется в следующее:
var __importStar = someTypescriptFunctionForImporting(moduleName){...};
const sequelize_1 = __importStar(require("sequelize"));
class Provider extends sequelize_1.default.Model { // This is fine, works great
const someQuery = sequelize_1.literal(someValue); // Error - Should be sequelize_1.default.literal
}
Версия Typescript = 3.6.3
.
My .tsconfig содержит следующие соответствующие параметры:
"allowJs": true,
"target": "es6",
"esModuleInterop": true,
"module": "commonjs",
"checkJs": false
Чтоя делаю не так? Если моя стратегия с Typescript невозможна из-за того, как мы работали с babel, я мог бы изменить стратегии для переноса файлов .js с файлами babel и .ts с Typescript, но я бы предпочел использовать один транспортер.
Спасибозаранее!