টাইপস্ক্রিপ্ট ফাইলটিতে "স্ট্রাইক ব্যবহার করুন" দরকার?


126

টাইপস্ক্রিপ্ট কোড ফাইলে কোথায় "কঠোর ব্যবহার" লাইন রাখতে হবে সে সম্পর্কিত পোস্টগুলি আমি দেখেছি। আমার প্রশ্ন হ'ল কেন এটা আদৌ আছে?

যেহেতু টাইপস্ক্রিপ্ট ইতিমধ্যে একটি দৃ typ়ভাবে টাইপ করা ভাষা, তাই "কঠোর ব্যবহার" কী যুক্ত করে?



12
আপনার প্রদত্ত লিঙ্কটি জাভাস্ক্রিপ্ট ফাইলটিতে "কঠোর ব্যবহার" কী তা নির্ধারণ করে। আমার প্রশ্ন হ'ল এটি এখনও কোনও টাইপস্ক্রিপ্ট ফাইলটিতে দরকারী / প্রয়োজন যেখানে টাইপস্ক্রিপ্ট এবং টাইপসক্রিপ্ট-সক্ষম সক্ষম সম্পাদকরা "কড়া ব্যবহারের" বিষয়গুলির বেশিরভাগ / সমস্ত (?) ধরবে।
দেবোরাহকে

আপনার "use strict";
এটিরও

টিএস-এ এটি দায়ের করবেন না, tsconfig.json --alwaysStict এ পতাকা যুক্ত করুন: কঠোর মোডে পার্স করুন এবং প্রতিটি উত্স ফাইলের জন্য "কঠোর ব্যবহার করুন" প্রসারণ করুন
ড্রেনাই

উত্তর:


107

আপডেট

  • প্রকারলিপি 1.8+: "use strict";মডিউলগুলিতে নির্গত হয় ( আরও পড়ুন )।
  • টাইপস্ক্রিপ্ট ২.১++: --alwaysStrictসংকলক বিকল্পটি সমস্ত ফাইলকে কঠোর মোডে পার্স করে এবং "use strict"সমস্ত আউটপুটযুক্ত ফাইলের শীর্ষে নির্গত হয় ( আরও পড়ুন )।

"কঠোর মোডে" জন্য টাইপস্ক্রিপ্টের পরীক্ষাগুলি অনুসন্ধান করে আপনি কয়েকটি উদাহরণের একটি তালিকা পেতে পারেন।

কোডের কয়েকটি উদাহরণ এখানে আপনি যখন সংকলনের সময় ত্রুটি কেবল তখনই ফেলে দেবেন "use strict";:

// future reserved keyword not allowed as variable name
var let,
    yield,
    public,
    private,
    protected,
    static,
    implements;

// "delete" cannot be called on an identifier
var a;
delete a;

// octal literals not allowed
03;

আরও কয়েকটি উদাহরণ রয়েছে যেখানে "use strict";কেবল রানটাইম এ ত্রুটি ছুঁড়ে ফেলা হবে। উদাহরণ স্বরূপ:

"use strict";
delete Object.prototype;

ব্যক্তিগতভাবে, আমাকে টাইপস্ক্রিপ্টে ভুল করা থেকে বিরত করার জন্য আমি এগুলি এত কার্যকর বলে মনে করি না এবং এটি একটি ফাইলে যুক্ত অতিরিক্ত শোরগোল আমাকে এটি লেখার বিরক্ত করে না। এটি বলেছিল, টিএস ২.১ থেকে শুরু করে আমি --alwaysStrictসংকলক বিকল্পটি সক্ষম করব কারণ এটি কোনও কোড রক্ষণাবেক্ষণ ওভারহেড ছাড়াই সামান্য অতিরিক্ত কঠোরতা যুক্ত করে।


টাইপস্ক্রিপ্ট ইউনিট পরীক্ষাগুলি এটিকে কভার করে। আমি তা পরীক্ষা করব. উদাহরণের জন্য ধন্যবাদ। এবং আমি এটিকে আর টাইপস্ক্রিপ্টের জন্য আমাদের "কোডিং মান" এর মধ্যে অন্তর্ভুক্ত করার বিষয়ে একমত নই।
দেবোরাহকে

নোট করুন আপনি যদি বাহ্যিক মডিউল ব্যবহার use strictকরেন তবে টিএস ফাইলের শীর্ষে ঘোষিত যে কোনও স্ট্রিং ফাইলের শীর্ষে পরিবর্তে মডিউল ফাংশনটি উপস্থিত হতে পারে, ফলে শব্দার্থকে সামান্য পরিবর্তন করে।
বিলক.সিএন

আমার মেশিনে, টাইপস্ক্রিপ্ট ১.৪ ব্যবহার না করার পরেও ECMAScript 5 বা ততোধিক লক্ষ্যবস্তু করার সময় অষ্টাল আক্ষরিক অনুমতি দেয় না"use strict;"
জেরেমি

18

আমার অর্থের জন্য, হ্যাঁ , "use strict";টাইপস্ক্রিপ্ট ফাইলগুলিতে অন্তর্ভুক্ত করা উচিত।

টাইপস্রিপ্টে সংকলন সময় প্রভাব উপেক্ষা করে "use strict";, উত্পন্ন জাভাস্ক্রিপ্ট কার্যকর করা হলে একটি রানটাইম প্রভাব থাকতে পারে :

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.