Typescript: ينبعث استخدام التصدير كـ __importStar والمساعدات ذات الصلة عند importHelpers: true

تم إنشاؤها على ٢٨ فبراير ٢٠٢٠  ·  3تعليقات  ·  مصدر: microsoft/TypeScript


إصدار 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 والتي تذكر أيضًا أن مساعدي الاستيراد تم تضمينهم في حالات حافة مختلفة. بالنظر إلى أن التصدير ليس استيرادًا ديناميكيًا ، وتم إغلاق المشكلة القديمة المتعلقة بالواردات المنتظمة ، يبدو أن هذه مشكلة مختلفة ، وربما ذات صلة.

Bug Rescheduled

التعليق الأكثر فائدة

يتسبب المساعد "__setModuleDefault" في حدوث هذا الخطأ بالنسبة لي:

TypeError: Cannot redefine property: default

لم أواجه هذا تحت 3.8.

ال 3 كومينتر

يتسبب المساعد "__setModuleDefault" في حدوث هذا الخطأ بالنسبة لي:

TypeError: Cannot redefine property: default

لم أواجه هذا تحت 3.8.

lotz بالنسبة لي مع الجلب المتقاطع للوحدة
بدأ بـ 3.9.2

قمت بإصلاحه باسم استيراد جلب حيث تم تسميته أيضًا تم تصديره وليس تصديره افتراضيًا فقط.

يجب أن نتعامل مع export * as ns from ... مثل import * as ns from ... في collectExternalModuleInfo . يجب أن يكون لدي إصلاح قريبا.

lotz : لست متأكدًا مما إذا كانت مشكلتك ذات صلة ، وربما تم إصلاحها بواسطة # 38808. هل يمكنك التحقق مما إذا كانت هذه هي الحالة ، وإذا لم يكن الأمر كذلك ، فهل يمكنك تقديم تقرير محدد لحالتك؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

MartynasZilinskas picture MartynasZilinskas  ·  3تعليقات

siddjain picture siddjain  ·  3تعليقات

weswigham picture weswigham  ·  3تعليقات

wmaurer picture wmaurer  ·  3تعليقات

seanzer picture seanzer  ·  3تعليقات