إصدار TypeScript: الإصدار 3.9.0-dev.20200228
مصطلحات البحث:
التصدير كمساعد للاستيراد
التصدير باعتباره importstar
تصدير كمساعد
الشفرة
export * as _ from 'lodash-es';
مجمعة مع التكوين التالي:
{
"compilerOptions": {
"target": "es2020",
"module": "commonjs",
"importHelpers": true,
"esModuleInterop": true
}
}
سلوك متوقع:
يجب أن يكون الإخراج هو نفسه كما لو كان تجميع TS المكافئ الأقدم:
import * as _ from 'lodash-es';
export {_}
على سبيل المثال ، يجب أن تكون Javascript المترجمة:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
// export * as _ from 'lodash-es';
const _ = tslib_1.__importStar(require("lodash-es"));
exports._ = _;
السلوك الفعلي:
يتم إصدار الوظائف المساعدة:
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports._ = __importStar(require("lodash-es"));
رابط الملعب:
لا يدعم ملعب Typescript importHelpers
، والتماثل noEmitHelpers
لا يسبب هذا السلوك ؛ لا أعتقد أنه من الممكن إعادة إظهار هذه المشكلة باستخدام Playground.
القضايا ذات الصلة:
أشار البحث عن مشكلات مماثلة لي إلى # 21560 و # 27415 والتي تذكر أيضًا أن مساعدي الاستيراد تم تضمينهم في حالات حافة مختلفة. بالنظر إلى أن التصدير ليس استيرادًا ديناميكيًا ، وتم إغلاق المشكلة القديمة المتعلقة بالواردات المنتظمة ، يبدو أن هذه مشكلة مختلفة ، وربما ذات صلة.
يتسبب المساعد "__setModuleDefault" في حدوث هذا الخطأ بالنسبة لي:
TypeError: Cannot redefine property: default
لم أواجه هذا تحت 3.8.
lotz بالنسبة لي مع الجلب المتقاطع للوحدة
بدأ بـ 3.9.2
قمت بإصلاحه باسم استيراد جلب حيث تم تسميته أيضًا تم تصديره وليس تصديره افتراضيًا فقط.
يجب أن نتعامل مع export * as ns from ...
مثل import * as ns from ...
في collectExternalModuleInfo
. يجب أن يكون لدي إصلاح قريبا.
lotz : لست متأكدًا مما إذا كانت مشكلتك ذات صلة ، وربما تم إصلاحها بواسطة # 38808. هل يمكنك التحقق مما إذا كانت هذه هي الحالة ، وإذا لم يكن الأمر كذلك ، فهل يمكنك تقديم تقرير محدد لحالتك؟
التعليق الأكثر فائدة
يتسبب المساعد "__setModuleDefault" في حدوث هذا الخطأ بالنسبة لي:
لم أواجه هذا تحت 3.8.