فيما يلي وحدة خارجية صغيرة تقوم بتصدير وحدة بشكل صريح:
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 نظرًا لأنها لا تفترض أن إرجاع الكائن للوحدة النمطية الخاصة بك هو كائن "الصادرات" وعليك أن تخمن أنك تقصد حقًا إرجاع شيء يتجاوز كائن "الصادرات" الذي طلبته.
علاوة على ذلك ، لماذا تهتم بالإعلان عن الاعتماد على كلمة "تتطلب" عندما لا يتم استخدامها؟
يبدو وكأنه اقتراح معقول
وافق
السؤال الذي طرحته بخصوص هذا: https://stackoverflow.com/questions/44836084/omit-require-and-exports-from-typescript-emitted-amd-dependencies
هل تم تنفيذ هذا حتى الآن؟ أنا في حاجة إليه...
amandaol تشير العلامات المتعلقة بالمسألة إلى أن الأمر متروك للمجتمع للتنفيذ. إلى جانب المشكلة التي لا تزال مفتوحة يعني أنه لم يتم تنفيذها.
لما يستحق ، نستخدم الآن amdextract
في خط أنابيب البناء الخاص بنا بعد tsc
لإزالة require
و exports
غير الضروري من JS المنبعث.
التعليق الأكثر فائدة
السؤال الذي طرحته بخصوص هذا: https://stackoverflow.com/questions/44836084/omit-require-and-exports-from-typescript-emitted-amd-dependencies