ما هو تيبسكريبت ولماذا يمكنني استخدامه بدلا من جافا سكريبت?[مغلق]

StackOverflow https://stackoverflow.com//questions/12694530

  •  12-12-2019
  •  | 
  •  

سؤال

يمكنك يرجى وصف ما هي اللغة تيبسكريبت?

ماذا يمكن أن تفعل ذلك جافا سكريبت أو المكتبات المتاحة لا تستطيع أن تفعل, من شأنه أن يعطيني سببا للنظر فيه?

هل كانت مفيدة؟

المحلول

كتبت هذه الإجابة في الأصل عندما كانت الكتابة المطبوعة لا تزال الساخنة قبالة المطابع.بعد خمس سنوات, هذه نظرة عامة جيدة, لكن انظر في إجابة لوديفيك أدناه لمزيد من العمق

عرض 1000 قدم...

تيبسكريبت هي مجموعة شاملة من جافا سكريبت التي توفر في المقام الأول الكتابة الثابتة الاختيارية والطبقات والواجهات.واحدة من الفوائد الكبيرة هي تمكين إيدس لتوفير بيئة أكثر ثراء لاكتشاف الأخطاء الشائعة كما يمكنك كتابة التعليمات البرمجية.

للحصول على فكرة عما أعنيه ، شاهد فيديو تمهيدي لمايكروسوفت على اللغة.

لمشروع جافا سكريبت كبير ، واعتماد تيبسكريبت قد يؤدي إلى برامج أكثر قوة ، في حين لا تزال قابلة للنشر حيث سيتم تشغيل تطبيق جافا سكريبت العادية.

وهو مفتوح المصدر ، ولكن يمكنك فقط الحصول على التحسس الذكي أثناء الكتابة إذا كنت تستخدم إيد المدعومة.في البداية ، كان هذا فقط مايكروسوفت فيسوال ستوديو (لوحظ أيضا في بلوق وظيفة من ميغيل دي إيكازا).هذه الأيام, إيدس أخرى تقدم دعم تيبسكريبت أيضا.

هل هناك تقنيات أخرى مثل ذلك?

هناك كوفيسكريبت, ، لكن هذا يخدم غرضا مختلفا حقا.إمهو ، كوفيسكريبت يوفر القراءة للبشر ، ولكن تيبسكريبت يوفر أيضا قراءة عميقة ل أدوات من خلال الكتابة الثابتة الاختيارية (انظر هذا مشاركة مدونة حديثة لمزيد من النقد).هناك أيضا دارت ولكن هذا هو كامل على استبدال لجافا سكريبت (على الرغم من ذلك يمكن أن تنتج شفرة جافا سكريبت)

مثال

وكمثال على ذلك ، وهنا بعض تيبسكريبت (يمكنك ان تلعب مع هذا في ملعب تيبسكريبت)

class Greeter {
    greeting: string;
    constructor (message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}  

وهنا جافا سكريبت أنها سوف تنتج

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();

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

كما أنها قادرة على استنتاج الأنواع التي لم يتم الإعلان عنها صراحة، على سبيل المثال ، ستحدد greet() طريقة إرجاع سلسلة.

التصحيح تيبسكريبت

العديد من المتصفحات و إيدس تقدم دعم التصحيح المباشر من خلال سورسيمابس.انظر هذا السؤال تجاوز المكدس لمزيد من التفاصيل: تصحيح رمز تيبسكريبت مع فيسوال ستوديو

تريد أن تعرف أكثر?

كتبت في الأصل هذه الإجابة عندما كان تيبسكريبت لا يزال الساخنة قبالة المطابع.تحقق من إجابة لوديفيك على هذا السؤال للحصول على مزيد من التفاصيل الحالية.

نصائح أخرى

نسخة مطبوعة على الآلة الكاتبة علاقة جافا سكريبت

نسخة مطبوعة على الآلة الكاتبة هو كتابة شاملة من جافا سكريبت التي تجمع عادي جافا سكريبت typescriptlang.org.

جافا سكريبت هي لغة البرمجة التي تم تطويرها من قبل EMCA التقني اللجنة 39, الذي هو مجموعة من الناس تتألف من العديد من مختلف أصحاب المصلحة.TC39 اللجنة استضافته ECMA:داخلية معايير المنظمة.جافا سكريبت لديه العديد من تطبيقات مختلفة من قبل العديد من مختلف البائعين (مثلا ، جوجل, مايكروسوفت, أوراكل, الخ.).الهدف من جافا سكريبت هو أن تكون لغة مشتركة على شبكة الإنترنت.

نسخة مطبوعة على الآلة الكاتبة هو مجموعة شاملة من جافا سكريبت لغة واحدة مفتوحة المصدر مترجم و طورت أساسا من قبل بائع واحد:مايكروسوفت.الهدف من نسخة مطبوعة على الآلة الكاتبة هو للمساعدة في القبض الأخطاء في وقت مبكر من خلال نوع النظام لجعل تطوير جافا سكريبت أكثر كفاءة.

أساسا نسخة مطبوعة على الآلة الكاتبة يحقق أهداف في ثلاث طرق:

  1. دعم الحديثة ميزات جافا سكريبت - لغة جافا سكريبت (لا وقت) هي موحدة من خلال ECMAScript معايير.ليس كل المتصفحات و جافا سكريبت أوقات التشغيل تدعم جميع الميزات من كل ECMAScript المعايير (انظر هذه نظرة عامة).نسخة مطبوعة على الآلة الكاتبة يسمح استخدام العديد من أحدث ECMAScript الميزات يترجم لهم في السن ECMAScript أهداف من اختيارك (انظر قائمة ترجمة الأهداف تحت --target الخيار برنامج التحويل البرمجي).هذا يعني أنه يمكنك استخدام بأمان ميزات جديدة مثل وحدات امدا وظائف, فصول, انتشار مشغل destructuring ، في حين تبقى معكوس متوافق مع المتصفحات القديمة و جافا سكريبت أوقات التشغيل.

  2. متقدمة نوع النظام - نوع الدعم ليس جزءا من ECMAScript القياسية و من المرجح أبدا أن يكون راجعا إلى تفسير الطبيعة بدلا من تجميع طبيعة جافا سكريبت.نوع النظام من نسخة مطبوعة على الآلة الكاتبة غنية بشكل لا يصدق و يشمل:واجهات enums ، الهجين أنواع الأدوية, الاتحاد/تقاطع أنواع معدلات الوصول وأكثر من ذلك بكثير.على الموقع الرسمي نسخة مطبوعة على الآلة الكاتبة يعطي لمحة عامة عن هذه الميزات.نسخة مطبوعة على الآلة الكاتبة هو نوع النظام هو على قدم المساواة مع معظم أخرى كتبته اللغات و في بعض الحالات يمكن القول أكثر قوة.

  3. المطور الأدوات الدعم - نسخة مطبوعة على الآلة الكاتبة برنامج التحويل البرمجي كما يمكن تشغيل عملية خلفية لدعم كل الإضافية تجميع IDE التكامل بحيث يمكنك التنقل بسهولة أكبر ، وتحديد المشاكل ، وفحص إمكانيات ريفاكتور الخاص بك تعليمات البرمجة الأساسية.

نسخة مطبوعة على الآلة الكاتبة علاقة إلى أخرى جافا سكريبت استهداف اللغات

نسخة مطبوعة على الآلة الكاتبة لديها فلسفة فريدة من نوعها بالمقارنة مع اللغات الأخرى التي تجمع جافا سكريبت.شفرة جافا سكريبت صالحة نسخة مطبوعة على الآلة الكاتبة المدونة ؛ نسخة مطبوعة على الآلة الكاتبة هو مجموعة شاملة من جافا سكريبت.يمكنك تقريبا تسمية .js الملفات .ts الملفات والبدء في استخدام نسخة مطبوعة على الآلة الكاتبة (انظر "جافا سكريبت التوافقية" أدناه).نسخة مطبوعة على الآلة الكاتبة يتم تجميع الملفات إلى قراءة جافا سكريبت ، بحيث الهجرة مرة أخرى من الممكن فهم جمعت نسخة مطبوعة على الآلة الكاتبة ليس من الصعب على الإطلاق.نسخة مطبوعة على الآلة الكاتبة يبني على النجاحات التي تحققت في جافا سكريبت مع تحسين على نقاط ضعفه.

من جهة لديك دليل على المستقبل الأدوات التي تأخذ الحديثة ECMAScript المعايير وتجميع وصولا إلى كبار السن جافا سكريبت الإصدارات مع بابل كونها الأكثر شعبية واحدة.من ناحية أخرى, لديك اللغات التي قد تختلف تماما من جافا سكريبت التي تستهدف جافا سكريبت ، مثل CoffeeScript ، Clojure, دارت, Elm, Haxe ، Scala.js و مجموعة كاملة أكثر (انظر هذه قائمة).هذه اللغات ، على الرغم من أنها قد تكون أفضل من حيث جافا سكريبت في المستقبل قد يؤدي أي وقت مضى ، يزيد من مخاطر عدم العثور على ما يكفي من اعتماد لمستقبلهم أن تكون مضمونة.قد يكون لديك أيضا أكثر صعوبة في العثور على المطورين ذوي الخبرة لبعض من هذه اللغات ، على الرغم من تلك التي سوف تجد في كثير من الأحيان يمكن أن يكون أكثر حماسا.إمكانية التشغيل المتداخل مع جافا سكريبت يمكن أيضا أن تكون أكثر قليلا من المشاركة لأنها وأبعد عن ما جافا سكريبت في الواقع.

نسخة مطبوعة على الآلة الكاتبة يجلس بين هذين النقيضين ، وبالتالي تحقيق التوازن بين المخاطر.نسخة مطبوعة على الآلة الكاتبة ليس خيار محفوف بالمخاطر بأي معيار من المعايير.فإنه يأخذ القليل جدا من الجهد للحصول على استخدامها إذا كنت على دراية مع جافا سكريبت ، لأنها ليست مختلفة تماما لغة ممتازة جافا سكريبت التشغيل البيني ودعم فقد رأيت الكثير من اعتمادها مؤخرا.

اختياريا ثابت الكتابة نوع الاستدلال

جافا سكريبت هي كتابة حيوي.وهذا يعني جافا سكريبت لا أعرف ما هو نوع متغير حتى هو في الواقع مثيل في وقت التشغيل.هذا يعني أيضا أنه قد يكون متأخرا جدا.نسخة مطبوعة على الآلة الكاتبة يضيف نوع دعم جافا سكريبت.الأخطاء التي تنتج عن الافتراضات الخاطئة من بعض متغير من نوع معين يمكن القضاء تماما إذا كنت تلعب بطاقات الحق الخاص بك (كيف صارمة كنت اكتب التعليمات البرمجية الخاصة بك أو إذا كنت اكتب التعليمات البرمجية الخاصة بك في كل متروك لكم).

نسخة مطبوعة على الآلة الكاتبة يجعل الكتابة أسهل قليلا و الكثير أقل وضوحا من خلال استخدام نوع الاستدلال.على سبيل المثال: var x = "hello" في نسخة مطبوعة على الآلة الكاتبة هو نفس var x : string = "hello".نوع هو مجرد استنتاج من استخدامه.حتى أنه لا صراحة نوع من أنواع أنهم لا يزالون هناك لانقاذ لكم من فعل شيئا خلاف ذلك من شأنه أن يؤدي إلى خطأ في وقت التشغيل.

نسخة مطبوعة على الآلة الكاتبة هو اختياريا كتبته بشكل افتراضي.على سبيل المثال function divideByTwo(x) { return x / 2 } صالحة وظيفة في نسخة مطبوعة على الآلة الكاتبة التي يمكن أن تسمى أي نوع من المعلمة ، على الرغم من الاتصال مع سلسلة من الواضح النتيجة في وقت التشغيل خطأ.تماما مثل كنت تستخدم في جافا سكريبت.يعمل هذا لأنه عندما لا اكتب صراحة تعيين نوع لا يمكن الاستدلال على ذلك ، كما في divideByTwo سبيل المثال ، نسخة مطبوعة على الآلة الكاتبة ضمنيا تعيين نوع any.هذا يعني divideByTwo وظيفة نوع التوقيع يصبح تلقائيا function divideByTwo(x : any) : any.هناك مترجم العلم إلى عدم السماح لهذا السلوك: --noImplicitAny.تمكين هذا العلم يمنحك قدرا أكبر من السلامة ، ولكن يعني أيضا سوف تضطر إلى بذل مزيد من الكتابة.

أنواع التكاليف المرتبطة بها.أولا وقبل كل شيء ، هناك منحنى التعلم, و ثانيا, بالطبع, لن يكلفك أكثر قليلا من الوقت لإعداد تعليمات البرمجة الأساسية باستخدام السليم صارمة الكتابة أيضا.في تجربتي هذه التكاليف يستحق ذلك تماما على أي خطورة codebase كنت تقاسم مع الآخرين. نطاق واسع دراسة لغات البرمجة رمز الجودة في جيثب تشير إلى أن "ثابت كتابة اللغات ، بصفة عامة ، هي أقل عيب عرضة أكثر ديناميكية ، وأن الكتابة قوية أفضل من ضعف الكتابة في نفس الصدد".

ومن المثير للاهتمام أن نلاحظ أن نفس هذه الورقة يرى أن نسخة مطبوعة على الآلة الكاتبة هو أقل عرضة للخطأ من جافا سكريبت:

بالنسبة لأولئك مع إيجابية معاملات يمكننا أن نتوقع أن اللغة يرتبط ، ceteris paribus عدد أكبر من عيب إصلاحات.هذه اللغات تشمل C, C++ ، جافا سكريبت, Objective-C, Php ، بيثون.اللغات Clojure, هاسكل, روبي, سكالا ، نسخة مطبوعة على الآلة الكاتبة, كل ما لديهم معاملات سلبية مما يعني أن هذه اللغات هي أقل أن متوسط يؤدي إلى خلل تحديد يرتكب.

Enhanced IDE الدعم

تطوير تجربة مع نسخة مطبوعة على الآلة الكاتبة هو تحسن كبير على جافا سكريبت.IDE هو على علم في الوقت الحقيقي من خلال نسخة مطبوعة على الآلة الكاتبة مترجم على الغني نوع المعلومات.وهذا يعطي اثنين من المزايا الرئيسية.على سبيل المثال ، مع نسخة مطبوعة على الآلة الكاتبة ، يمكنك القيام بأمان refactorings مثل تسمية عبر كامل تعليمات البرمجة الأساسية.من خلال إنجاز قانون ، يمكنك الحصول على مضمنة تساعد على أي وظائف المكتبة قد تقدم.لا مزيد من الحاجة إلى تذكر لهم أو البحث عنها في المراجع على الانترنت.تجميع الأخطاء ذكرت مباشرة في IDE مع الأحمر خط متعرج بينما كنت مشغولا الترميز.كل هذا يسمح مكاسب كبيرة في الإنتاجية مقارنة مع العمل مع جافا سكريبت.واحد يمكن أن تنفق المزيد من الوقت الترميز أقل وقت التصحيح.

هناك مجموعة واسعة من بيئات التطوير التي لها دعم ممتاز على نسخة مطبوعة على الآلة الكاتبة ، مثل Visual Studio رمز WebStorm ، الذرة سامية.

صارمة null الشيكات

أخطاء وقت التشغيل من شكل cannot read property 'x' of undefined أو undefined is not a function جدا شيوعا الناجمة عن الخلل في شفرة جافا سكريبت.الخروج من مربع نسخة مطبوعة على الآلة الكاتبة بالفعل يقلل من احتمال هذه الأنواع من الأخطاء التي تحدث منذ واحد لا يمكن استخدام متغير غير معروف إلى نسخة مطبوعة على الآلة الكاتبة مترجم (مع استثناء من خصائص any كتابة المتغيرات).فإنه لا يزال من الممكن عن طريق الخطأ على الرغم من أن الاستفادة من هذا المتغير هو undefined.ولكن مع الإصدار 2.0 من نسخة مطبوعة على الآلة الكاتبة يمكنك القضاء على هذه الأنواع من الأخطاء معا من خلال الاستخدام غير nullable أنواع.يعمل هذا على النحو التالي:

مع رقابة صارمة null الشيكات تمكين (--strictNullChecks مترجم العلم) مطبوعة على الآلة الكاتبة المترجم لن تسمح undefined إلى أن يتم تعيين إلى متغير ما لم تعلن صراحة أن يكون من النوع nullable.على سبيل المثال ، let x : number = undefined سوف يؤدي إلى خطأ ترجمة.هذا يناسب تماما مع نوع النظرية منذ undefined ليس عددا.يمكن للمرء أن يعرف x أن يكون مبلغ نوع من number و undefined لتصحيح هذا: let x : number | undefined = undefined.

مرة واحدة في نوع من المعروف أن nullable ، وهذا يعني أنها من النوع الذي يمكن أيضا أن تكون ذات قيمة null أو undefined, مطبوعة على الآلة الكاتبة مترجم يمكن أن تحدد من خلال التحكم في التدفق على أساس نوع تحليل ما إذا كان أو لم يكن لديك رمز يمكن بأمان استخدام متغير أو لا.وبعبارة أخرى عند التحقق من متغير undefined من خلال على سبيل المثال ، if بيان مطبوعة على الآلة الكاتبة المترجم نستنتج أن اكتب في هذا الفرع من التعليمات البرمجية الخاصة بك التحكم في التدفق لا يعد nullable وبالتالي يمكن استخدامها بأمان.هنا مثال بسيط:

let x: number | undefined;
if (x !== undefined) x += 1; // this line will compile, because x is checked.
x += 1; // this line will fail compilation, because x might be undefined.

خلال بناء, 2016 المؤتمر شارك مصمم نسخة مطبوعة على الآلة الكاتبة أندرس هيلسبرغ شرح تفصيلي و مظاهرة من هذه الميزة: فيديو (44:30 56:30).

تجميع

استخدام نسخة مطبوعة على الآلة الكاتبة تحتاج إلى بناء عملية تجميع على شفرة جافا سكريبت.عملية الإنشاء عموما يستغرق سوى بضع ثوان اعتمادا بالطبع على حجم المشروع.مطبوعة على الآلة الكاتبة مترجم يدعم تجميع الإضافية (--watch مترجم العلم) بحيث أن جميع التغييرات اللاحقة يمكن جمعه بسرعة أكبر.

مطبوعة على الآلة الكاتبة المترجم أن مضمنة المصدر خريطة المعلومات التي تم إنشاؤها .js الملفات أو إنشاء منفصلة .خريطة الملفات.مصدر الخريطة المعلومات يمكن استخدامها من قبل التصحيح المرافق مثل Chrome DevTools وغيرها من IDE إلى ربط خطوط في جافا سكريبت إلى تلك التي ولدت في نسخة مطبوعة على الآلة الكاتبة.هذا يجعل من الممكن بالنسبة لك تعيين نقاط إيقاف وتفتيش المتغيرات أثناء وقت التشغيل مباشرة على نسخة مطبوعة على الآلة الكاتبة رمز.مصدر الخريطة المعلومات يعمل بشكل جيد جدا ، كان حوالي قبل وقت طويل من نسخة مطبوعة على الآلة الكاتبة ، ولكن التصحيح نسخة مطبوعة على الآلة الكاتبة عموما ليست كبيرة كما عند استخدام جافا سكريبت مباشرة.اتخاذ this الكلمة على سبيل المثال.بسبب تغير دلالات this الكلمة حول إغلاق منذ ES2015, this في الواقع قد يوجد في أثناء وقت التشغيل حسب متغير يسمى _this (انظر هذا الجواب).هذا يمكن أن نخلط بين لك أثناء التصحيح ولكن عموما ليست مشكلة إذا كنت تعرف عن ذلك أو فحص شفرة جافا سكريبت.وتجدر الإشارة إلى أن بابل تعاني نفس المشكلة.

وهناك عدد قليل من الحيل الأخرى مطبوعة على الآلة الكاتبة مترجم يمكن القيام به ، مثل توليد اعتراض رمز على أساس الديكور, تولد وحدة التحميل رمز وحدة نمطية مختلفة ونظم تحليل JSX.ومع ذلك ، من المرجح أن تتطلب بناء أداة بالإضافة إلى مترجم نسخة مطبوعة على الآلة الكاتبة.على سبيل المثال ، إذا كنت ترغب في ضغط التعليمات البرمجية الخاصة بك سيكون لديك لإضافة أدوات أخرى إلى بناء العملية للقيام بذلك.

هناك نسخة مطبوعة على الآلة الكاتبة تجميع الإضافات المتاحة Webpack, بلع, نخر والى حد كبير أي جافا سكريبت بناء أداة هناك.مطبوعة على الآلة الكاتبة الوثائق على قسم التكامل مع أدوات البناء تغطي كل منهم.A اللنت يتوفر أيضا في حال كنت تريد المزيد من الوقت بناء التدقيق.وهناك أيضا عدد كبير من البذور المشاريع هناك التي سوف تبدأ مع نسخة مطبوعة على الآلة الكاتبة في تركيبة مع مجموعة من التقنيات الأخرى مثل الزاوي 2, تتفاعل, جمرة ، SystemJS, Webpack, بلع, الخ.

جافا سكريبت التشغيل البيني

منذ نسخة مطبوعة على الآلة الكاتبة يرتبط ارتباطا وثيقا جافا سكريبت لها تأثير كبير على القدرات التوافقية ، ولكن بعض العمل الإضافي مطلوب للعمل مع مكتبات جافا سكريبت في نسخة مطبوعة على الآلة الكاتبة. نسخة مطبوعة على الآلة الكاتبة التعاريف وهناك حاجة إلى نسخة مطبوعة على الآلة الكاتبة مترجم يدرك أن وظيفة المكالمات مثل _.groupBy أو angular.copy أو $.fadeOut ليست في الواقع غير مشروعة البيانات.التعاريف لهذه الوظائف يتم وضعها في .d.ts ملفات.

إن أبسط تعريف يمكن أن يستغرق تسمح معرف يمكن استخدامها في أي شكل من الأشكال.على سبيل المثال ، عند استخدام Lodash, واحد خط ملف تعريف declare var _ : any سوف تسمح لك لاستدعاء أي وظيفة تريدها على _, لكن بالطبع, أنت أيضا لا تزال قادرة على جعل الأخطاء: _.foobar() سيكون القانونية نسخة مطبوعة على الآلة الكاتبة الدعوة ، ولكن بالطبع غير قانونية الدعوة في وقت التشغيل.إذا كنت تريد نوع المناسبة ودعم استكمال رمز ملف التعريف الخاص بك يحتاج إلى أن يكون أكثر دقة (انظر lodash التعاريف على سبيل المثال).

الآلية وحدات التي تأتي قبل تعبئتها مع نوع الخاصة بهم التعاريف تلقائيا يفهمها مترجم نسخة مطبوعة على الآلة الكاتبة (انظر الوثائق).الى حد كبير أي شبه شعبية مكتبة جافا سكريبت التي لا تشمل تعاريف شخص ما هناك بالفعل نوع التعاريف المتاحة من خلال آخر وحدة الآلية الوقائية الوطنية.هذه الوحدات مسبوقة بـ "@أنواع/" و تأتي من Github يسمى DefinitelyTyped.

هناك واحد التحذير:نوع التعاريف يجب أن تتطابق مع نسخة من المكتبة كنت تستخدم في وقت التشغيل.إذا كانوا لا, نسخة مطبوعة على الآلة الكاتبة قد منع من استدعاء دالة أو dereferencing متغير موجود أو تسمح لك لاستدعاء دالة أو إلغاء مرجعية متغير غير موجود ببساطة لأن أنواع لا تتناسب مع وقت تشغيل في وقت التحويل البرمجي.لذلك تأكد من تحميل الإصدار الصحيح من نوع تعريفات نسخة المكتبة تستخدمه.

أن نكون صادقين, هناك طفيف مشاحنات أن هذا قد يكون واحدا من الأسباب كنت لا اختيار نسخة مطبوعة على الآلة الكاتبة ، ولكن بدلا من ذلك الذهاب لشيء مثل بابل التي لا تعاني من الحاجة إلى الحصول على تعريفات نوع على الإطلاق.من ناحية أخرى, إذا كنت تعرف ما تقومون به يمكنك بسهولة التغلب على أي نوع من القضايا الناجمة عن غير صحيحة أو مفقودة ملفات تعريف.

تحويل من جافا سكريبت إلى نسخة مطبوعة على الآلة الكاتبة

أي .js ملف يمكن تسميته إلى .ts ملف ركض من خلال نسخة مطبوعة على الآلة الكاتبة مترجم على نحويا نفس شفرة جافا سكريبت كما الانتاج (إذا كان نحويا الصحيح في المقام الأول).حتى عندما مطبوعة على الآلة الكاتبة مترجم يحصل تجميع الأخطاء وسوف لا تزال تنتج .js الملف.حتى أنها يمكن أن تقبل .js ملفات الإدخال مع --allowJs العلم.هذا يسمح لك أن تبدأ مع نسخة مطبوعة على الآلة الكاتبة على الفور.للأسف تجميع أخطاء من المحتمل أن تحدث في البداية.لا أحد بحاجة إلى أن نتذكر أن هذه ليست المعرض-إيقاف أخطاء مثلك يمكن استخدامها مع غيرها جامعي.

تجميع الأخطاء واحدة يحصل في البداية عند تحويل جافا سكريبت المشروع إلى نسخة مطبوعة على الآلة الكاتبة المشروع لا يمكن تجنبها من خلال نسخة مطبوعة على الآلة الكاتبة الطبيعة.نسخة مطبوعة على الآلة الكاتبة الشيكات كل الرمز من أجل صحة وبالتالي فإنه يحتاج إلى معرفة جميع وظائف المتغيرات التي يتم استخدامها.وهكذا نوع التعاريف تحتاج إلى أن تكون في مكان كل منهم خلاف ذلك تجميع الأخطاء لا بد أن تحدث.كما ذكر في الفصل أعلاه ، الى حد كبير أي جافا سكريبت الإطار هناك .d.ts الملفات التي يمكن بسهولة الحصول مع تركيب DefinitelyTyped حزم.غير أن ذلك قد يكون أن كنت قد استخدمت بعض غامضة المكتبة التي لا توجد نسخة مطبوعة على الآلة الكاتبة التعاريف المتوفرة أو التي قمت polyfilled بعض جافا سكريبت الأوليات.في هذه الحالة يجب توفير نوع من هذه التعاريف لهذه بت تجميع الأخطاء أن تختفي.مجرد إنشاء .d.ts الملف وإدراجه في tsconfig.json files مجموعة, بحيث تعتبر دائما من قبل مترجم نسخة مطبوعة على الآلة الكاتبة.في إعلان هذه البتات أن نسخة مطبوعة على الآلة الكاتبة لا تعرف عن نوع any.مرة واحدة كنت قد ألغى جميع الأخطاء يمكنك إدخال تدريجيا الكتابة إلى تلك الأجزاء وفقا للاحتياجات الخاصة بك.

بعض العمل على (إعادة)تكوين بناء خط أنابيب أيضا سوف تكون هناك حاجة إلى الحصول على نسخة مطبوعة على الآلة الكاتبة في بناء خط أنابيب.كما ذكر في الفصل على تجميع هناك الكثير من موارد جيدة هناك وأنا أشجعكم للبحث عن البذور مشاريع استخدام مزيج من الأدوات تريد أن تعمل مع.

أكبر عقبة هو منحنى التعلم.أنا أشجعكم على اللعب حولها مع مشروع صغير في البداية.أنظر كيف يعمل, كيف يبني الملفات التي يستخدمها ، وكيف يتم تكوينه, كيف يعمل في IDE, كيف هو منظم الأدوات التي يستخدمها ، إلخ.تحويل كبير جافا سكريبت برنامج إلى نسخة مطبوعة على الآلة الكاتبة غير قابلة للتنفيذ عندما كنت تعرف ما تقومون به.قراءة هذا بلوق على سبيل المثال على تحويل 600k خطوط نسخة مطبوعة على الآلة الكاتبة في 72 ساعة).فقط تأكد من أن لديك فهم جيد من اللغة قبل أن تقفز.

اعتماد

نسخة مطبوعة على الآلة الكاتبة هو المصدر المفتوح (أباتشي 2 المرخصة ، انظر جيثب) والمدعومة من قبل Microsoft. أندرس هيلسبرغ, يؤدي مهندس C# هو قيادة المشروع.انها نشطة جدا في المشروع ؛ مطبوعة على الآلة الكاتبة فريق تم الإفراج عن الكثير من الميزات الجديدة في السنوات القليلة الماضية الكثير من عظماء لا تزال المزمع أن يأتي (انظر خارطة الطريق).

بعض الحقائق حول اعتماد وشعبية:

  • في 2017 ستاكوفيرفلوو المطور المسح نسخة مطبوعة على الآلة الكاتبة كان جافا سكريبت الأكثر شعبية transpiler (9 مكان عموما) وفاز بالمركز الثالث في الأكثر محبوب لغة البرمجة الفئة.
  • في 2018 الدولة من شبيبة المسح نسخة مطبوعة على الآلة الكاتبة كما أعلن واحد من اثنين من الفائزين في جافا سكريبت النكهات الفئة (مع ES6 يجري الأخرى).
  • في 2019 StackOverlow deverloper المسح نسخة مطبوعة على الآلة الكاتبة ارتفع إلى 9 المكان من اللغات الأكثر شعبية بين المطورين المحترفين ، والتجاوز كل من C و C++.مرة أخرى في المركز الثالث بين أكثر اللغات الأكثر شعبية.

didescript يفعل شيئا مشابها لما يفعله ما يقل عن أقل أو ساس ل CSS.إنها مجموعات فائقة منه، مما يعني أن كل رمز JS الذي تكتبه هو رمز طيابق صالح.بالإضافة إلى ذلك، يمكنك استخدام الأشياء الجيدة الأخرى التي تضيفها إلى اللغة، وسوف تكون التعليمات البرمجية المررحة صالحةين JS.يمكنك حتى تعيين إصدار JS الذي تريد رمزك الناتج.

didescript حاليا هو مجموعة فائقة من ES2015، لذلك قد يكون خيارا جيدا لبدء تعلم ميزات JS الجديدة والتجاوز إلى المعيار اللازم لمشروعك.

"نسخة مطبوعة على الآلة الكاتبة أساسيات"- وهي Pluralsight بالطبع الفيديو من قبل دان فلين و جون بابا هو حقا جيدة في الوقت الحاضر (25 مارس 2016) تحديث لتعكس نسخة مطبوعة على الآلة الكاتبة 1.8 ، مقدمة في نسخة مطبوعة على الآلة الكاتبة.

بالنسبة لي حقا ميزات جيدة, بجوار لطيفة إمكانيات التحسس ، دروس, واجهات, وحدات, وسهولة تنفيذ AMD و إمكانية استخدام Visual Studio نسخة مطبوعة على الآلة الكاتبة المصحح عند استدعاء مع IE.

تلخيص:إذا ما استخدمت على النحو المنشود ، نسخة مطبوعة على الآلة الكاتبة يمكن أن تجعل البرمجة جافا سكريبت أكثر موثوقية وأسهل.فإنه يمكن زيادة إنتاجية جافا سكريبت مبرمج بشكل كبير على كامل SDLC.

ecma script 5 (es5) والتي يدعمها جميع المتصفح والعمود.جاء ES6 / ES2015 و ES / 2016 هذا العام مع الكثير من التغييرات حتى ينبثق هذه التغييرات هناك شيء ما يجب أن يأخذ يهتم ببعضها البعض.

• Cyscript هي أنواع -> تعني أن علينا تحديد نوع البيانات لكل عقار وطرق.إذا كنت تعرف C #، فمن السهل فهم Clyscript.

• ميزة كبيرة من أنبثق هل نحن المشكلات ذات الصلة نوع الهوية في وقت مبكر قبل الذهاب إلى الإنتاج.هذا يسمح باختبارات الوحدات للفشل إذا كان هناك أي عدم تطابق النوع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top