Header Ads

Header ADS

Install datatype module (@types/নাম)

আমরা যখন কোনো থার্ড-পার্টি লাইব্রেরি ব্যবহার করি, আর সেটা যদি জাভাস্ক্রিপ্ট-এ লেখা থাকে (TypeScript না), তখন তার আলাদা টাইপ ডেফিনিশন প্যাকেজ লাগবে।

✅ বুঝবার উপায় কোন লাইব্রেরির টাইপ ইনস্টল করতে হবে:

  1. যদি লাইব্রেরি TypeScript এ লেখা থাকে 👉 আলাদা টাইপ লাগবে না।
    উদাহরণ: chalk, zod, prisma — এগুলো আগে থেকেই TypeScript টাইপ দেয়।

  2. যদি লাইব্রেরি pure JavaScript এ লেখা হয় 👉 তার টাইপ আলাদাভাবে দিতে হয়।
    তখন তুমি DefinitelyTyped রিপো থেকে (npm-এ) @types/লাইব্রেরি-নাম খুঁজে পাবে।
    উদাহরণ:

    1. express@types/express

    2. cors@types/cors

    3. morgan@types/morgan

  3. বুঝতে চাইলে কীভাবে চেক করবে?

    1. লাইব্রেরি ইনস্টল করার পর TypeScript এ import করলে যদি এরর দেয় — যেমন:

      Could not find a declaration file for module 'morgan'.
      

      👉 বুঝতে হবে এর টাইপ ডেফিনিশন নেই, আলাদা ইনস্টল করতে হবে।

    2. অথবা সরাসরি npm-এ খুঁজে দেখো:

      npm info @types/morgan
      

      👉 যদি থাকে, ইনস্টল করো।

  4. Shortcut Rule:

    1. প্রথমে লাইব্রেরি ইনস্টল করো।
    2. তারপর TypeScript এ ইমপোর্ট করে দেখো এরর আসে কিনা।

    3. এরর এলে @types/লাইব্রেরি-নাম খুঁজে ইনস্টল করো।


👉 মানে হলো — যে লাইব্রেরি ডিফল্টভাবে TypeScript সাপোর্ট করে না, সেটার জন্য আলাদা @types/... প্যাকেজ লাগে।


Express eco-system এ কোন কোন লাইব্রেরি ব্যবহার করলে সাধারণত আলাদা @types/... লাগবে, আর কোনটার লাগবে না?



🟢 যেগুলোর জন্য @types/... লাগবে:

এগুলো pure JavaScript এ লেখা, তাই আলাদা টাইপ ইনস্টল করতে হয়।

  1. express@types/express

  2. cors@types/cors

  3. morgan@types/morgan

  4. body-parser@types/body-parser

  5. cookie-parser@types/cookie-parser

  6. helmet@types/helmet

  7. jsonwebtoken@types/jsonwebtoken

  8. bcrypt@types/bcrypt

  9. multer@types/multer

  10. session (express-session)@types/express-session


🔵 যেগুলোর জন্য আলাদা টাইপ লাগে না:

এগুলো TypeScript সাপোর্ট সহ আসে, তাই আলাদা @types/... ইনস্টল করার দরকার নেই।

  1. chalk

  2. zod

  3. prisma

  4. dotenv

  5. mongoose

  6. axios

  7. winston


🟡 মনে রাখার ট্রিক:

  1. প্রথমে লাইব্রেরি ইনস্টল করো।

  2. তারপর TypeScript এ ইমপোর্ট করে দেখো।

    1. যদি error দেয় ➝ @types/... প্যাকেজ খুঁজো।

    2. যদি error না দেয় ➝ বুঝবে টাইপ বিল্ট-ইন আছে।



Powered by Blogger.