Typescript: تتطلب الوحدات الخارجية مع AMD دائمًا "عمليات تصدير" حتى في حالة عدم استخدامها

تم إنشاؤها على ١٣ سبتمبر ٢٠١٤  ·  6تعليقات  ·  مصدر: microsoft/TypeScript

فيما يلي وحدة خارجية صغيرة تقوم بتصدير وحدة بشكل صريح:

module Foo {
    export var foo = 42;
}
export = Foo;

الكود الذي تم إنشاؤه لهذا هو:

define(["require", "exports"], function(require, exports) {
    var Foo;
    (function (Foo) {
        Foo.foo = 42;
    })(Foo || (Foo = {}));

    return Foo;
});

يبدو هذا وكأنه AMD سيئًا نظرًا لأنك تطلب الاعتماد السحري على "الصادرات" ، ولكنك لا تستخدمه وبدلاً من ذلك تعيد Foo مباشرةً.

إنه أمر مزعج بالنسبة للحد الأدنى من لوادر AMD نظرًا لأنها لا تفترض أن إرجاع الكائن للوحدة النمطية الخاصة بك هو كائن "الصادرات" وعليك أن تخمن أنك تقصد حقًا إرجاع شيء يتجاوز كائن "الصادرات" الذي طلبته.

علاوة على ذلك ، لماذا تهتم بالإعلان عن الاعتماد على كلمة "تتطلب" عندما لا يتم استخدامها؟

Suggestion help wanted

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

ال 6 كومينتر

يبدو وكأنه اقتراح معقول

وافق

هل تم تنفيذ هذا حتى الآن؟ أنا في حاجة إليه...

amandaol تشير العلامات المتعلقة بالمسألة إلى أن الأمر متروك للمجتمع للتنفيذ. إلى جانب المشكلة التي لا تزال مفتوحة يعني أنه لم يتم تنفيذها.

لما يستحق ، نستخدم الآن amdextract في خط أنابيب البناء الخاص بنا بعد tsc لإزالة require و exports غير الضروري من JS المنبعث.

https://github.com/mehdishojaei/amdextract

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