মূল কন্টেন্টে যান
মডিউল 7 · 1-এর পাঠ 2কোর্সে 13/14~12 min
মডিউল পাঠ (1/2)

tsconfig.json এর সাথে কনফিগারেশন

tsconfig.json ফাইলটি একটি TypeScript প্রকল্পের রুট ডিরেক্টরি এবং প্রকল্পটি তৈরি করার জন্য প্রয়োজনীয় কম্পাইলার বিকল্পগুলি নির্দিষ্ট করে৷

যখনই আপনি একটি প্রজেক্ট ডিরেক্টরিতে tsc চালান, কম্পাইলার এই ফাইলটির সংকলন আচরণকে নির্দেশিত করার জন্য অনুসন্ধান করে।


একটি tsconfig.json ফাইলের গঠন

একটি সাধারণ কনফিগারেশন ফাইল এই মত দেখায়:

Code
{
  "compilerOptions": {
    "target": "es2022",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

প্রধান বৈশিষ্ট্য হল:

  • compilerOptions: কম্পাইলারের জন্য সেটিংস।
  • include: কম্পাইল করার জন্য ফাইল বা ফোল্ডার নির্দিষ্ট করে।
  • exclude: সংকলনের সময় উপেক্ষা করার জন্য ফাইল বা ফোল্ডারগুলি নির্দিষ্ট করে৷

কী কম্পাইলার অপশন

এখানে জানার জন্য সবচেয়ে গুরুত্বপূর্ণ কিছু সেটিংস রয়েছে:

  1. target: কম্পাইলার দ্বারা জাভাস্ক্রিপ্ট আউটপুটের সংস্করণ নির্দিষ্ট করে (যেমন, es5, es6/es2015, es2020, esnext)।
  2. module: সংকলিত কোডে ব্যবহৃত মডিউল সিস্টেমটি নির্দিষ্ট করে (যেমন, commonjs, esnext, node16)।
  3. strict: কঠোর টাইপ-চেকিং আচরণের একটি বিস্তৃত স্যুট সক্ষম করে। সর্বোচ্চ ধরনের নিরাপত্তার জন্য এটিকে true এ সেট করার জন্য অত্যন্ত সুপারিশ করা হয়। এটি বিকল্পগুলিকে সক্ষম করে যেমন:
    • noImplicitAny: কোনো প্রকার টীকা প্রদান করা না হলে একটি অন্তর্নিহিত any টাইপ সহ অভিব্যক্তি এবং ঘোষণায় একটি ত্রুটি উত্থাপন করে৷
    • strictNullChecks: null বা undefined টাইপকে বরাদ্দ করা প্রতিরোধ করে যেগুলি তাদের ইউনিয়নে স্পষ্টভাবে অন্তর্ভুক্ত করে না৷

নিজে চেষ্টা করে দেখুন

ব্যায়াম 1: কঠোর নল চেকগুলি পরিচালনা করা

ব্যায়াম#ts.m7.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

tsconfig.json-এ strictNullChecks: true বিকল্পের অধীনে, আমরা আদিম প্রকারের জন্য নাল বা অনির্ধারিত নির্ধারণ করতে পারি না। parseAge নামে একটি ফাংশন ঘোষণা করুন যা টাইপ স্ট্রিং এর একটি ইনপুট গ্রহণ করে | null এবং একটি সংখ্যা প্রদান করে যদি ইনপুটটি শূন্য না হয় এবং একটি বৈধ পূর্ণসংখ্যা হয়, অন্যথায় এটি 0 প্রদান করে। কঠোর সংকলন পাস করার জন্য নাল কেসটি স্পষ্টভাবে পরিচালনা করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ফাংশনের শুরুতে ইনপুট শূন্য কিনা তা পরীক্ষা করুন এবং স্ট্রিং প্রক্রিয়া করার আগে অবিলম্বে 0 ফেরত দিন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম 2: কোনো অন্তর্নিহিত ছাড়াই কঠোর টাইপিং

ব্যায়াম#ts.m7.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

noImplicitAny: সত্যের অধীনে, যে কোনো প্যারামিটার যার ধরন অনুমান করা যায় না তা অবশ্যই স্পষ্টভাবে টাইপ করতে হবে। processItems নামে একটি ফাংশন তৈরি করুন যা একটি অ্যারে আইটেম (সংখ্যার অ্যারে) এবং একটি কলব্যাক ফাংশন গ্রহণ করে যা একটি একক নম্বরকে যুক্তি হিসাবে গ্রহণ করে এবং কিছুই ফেরত দেয় না। নিশ্চিত করুন যে কোনটি ব্যবহার করবেন না এবং সবকিছু স্পষ্টভাবে টাইপ করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

স্বাক্ষর ফাংশন প্রক্রিয়া আইটেম (আইটেম: নম্বর[], কলব্যাক: (আইটেম: নম্বর) => অকার্যকর): অকার্যকর সহ ফাংশনটি ঘোষণা করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ