টাইপস্ক্রিপ্ট

**টাইপস্ক্রিপ্ট** হলো একটি ফ্রি এবং ওপেন সোর্স হাই-লেভেল প্রোগ্রামিং ল্যাঙ্গুয়েজ যা মাইক্রোসফট ইনক. তৈরি করেছে, যা জাভাস্ক্রিপ্টে ঐচ্ছিক ধরন, টীকা সহ স্ট্যাটিক টাইপিং যোগ করে। এটি জাভাস্ক্রিপ্টে বড় অ্যাপ্লিকেশন এবং ট্রান্সপিলগুলির বিকাশের জন্য ডিজাইন করা হয়েছে।  যেহেতু টাইপস্ক্রিপ্ট জাভাস্ক্রিপ্টের একটি সুপারসেট, সমস্ত জাভাস্ক্রিপ্ট প্রোগ্রাম সিনটেক্স অনুযায়ী বৈধ টাইপস্ক্রিপ্ট, কিন্তু তারা নিরাপত্তার কারণে টাইপ-চেক করতে ব্যর্থ হতে পারে।

টাইপস্ক্রিপ্ট ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড এক্সিকিউশন উভয়ের জন্য জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন ডেভেলপ করতে ব্যবহার করা যেতে পারে। ট্রান্সপিলেশনের করার জন্য একাধিক উপায় রয়েছে। ডিফল্ট টাইপস্ক্রিপ্ট কম্পাইলার ব্যবহার করা যেতে পারে, অথবা টাইপস্ক্রিপ্টকে জাভাস্ক্রিপ্টে রূপান্তর করতে ব্যাবেল কম্পাইলার ব্যবহার করা যেতে পারে।

টাইপস্ক্রিপ্ট কম্পাইলার নিজেই টাইপস্ক্রিপ্টে লেখা এবং জাভাস্ক্রিপ্টে কম্পাইল করা হয়েছে । এটি অ্যাপাচি লাইসেন্স ২.০ এর অধীনে লাইসেন্সকৃত। অ্যান্ডার্স হেজলসবার্গ টাইপস্ক্রিপ্ট এর বিকাশের কাজ করেছেন। 

## ইতিহাস
মাইক্রোসফ্টের অভ্যন্তরীণ ডেভেলপের দুই বছর পর টাইপস্ক্রিপ্ট 0.8 সংস্করণ সহ অক্টোবর 2012 সালে জনসাধারণের জন্য প্রকাশ করা হয়েছিল।  প্রাথমিক প্রকাশের পরপরই, মিগুয়েল ডি ইকাজা নিজেই ভাষার প্রশংসা করেছিলেন, কিন্তু মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও ছাড়াও পরিপক্ক IDE সমর্থনের অভাবের সমালোচনা করেছিলেন, যা সেই সময়ে লিনাক্স এবং ওএস এক্স- এ উপলব্ধ ছিল না।  ২০২১ সালের এপ্রিল পর্যন্ত Emacs, Vim, WebStorm, Atom  এবং Microsoft-এর নিজস্ব ভিজ্যুয়াল স্টুডিও কোড সহ অন্যান্য IDE এবং টেক্সট এডিটরগুলিতে সমর্থন রয়েছে।  ২০১৩ সালে প্রকাশিত টাইপস্ক্রিপ্ট 0.9, জেনেরিকের জন্য সমর্থন যোগ করেছে। 

২০১৪ সালে মাইক্রোসফটের বিল্ড ডেভেলপার কনফারেন্সে টাইপস্ক্রিপ্ট 1.0 প্রকাশ করা হয়েছিল। সেসময় ডেভেলপমেন্ট টিম নতুন টাইপস্ক্রিপ্ট কম্পাইলার ঘোষণা করেছিল, যার কার্যক্ষমতা পাঁচগুণ বৃদ্ধি পাওয়ার কথা ছিল। একই সাথে, সোর্স কোড, যা প্রাথমিকভাবে CodePlex- এ হোস্ট করা হয়েছিল, তা GitHub এ সরানো হয়েছিল। 

২২ সেপ্টেম্বর ২০১৬ তে, টাইপস্ক্রিপ্ট 2.0 প্রকাশ করা হয়েছিল, প্রোগ্রামারদের জন্য ঐচ্ছিকভাবে null-safety প্রয়োগ করার ক্ষমতা সহ বেশ কিছু ফিচার প্রবর্তন করা হয়েছিল, যা কখনও কখনও বিলিয়ন-ডলারের ভুল হিসাবে উল্লেখ করা হয়।

টাইপস্ক্রিপ্ট 3.0 ৩০-এ জুলাই ২০১৮ তে প্রকাশিত হয়েছিল, যা অনেক ভাষা সংযোজন নিয়ে এসেছে যেমন rest parameter এবং spread expressions, টুপল টাইপের সাথে rest parameter, জেনেরিক rest parameter সহ আরোও অনেক কিছু।

টাইপস্ক্রিপ্ট 4.0 ২০-এ আগস্ট ২০২০ এ প্রকাশিত হয়েছিল  যদিও 4.0 কোনো ব্রেকিং পরিবর্তন প্রবর্তন করেনি, এটি কাস্টম JSX ফ্যাক্টরিস এবং ভ্যারিয়াডিক টুপল টাইপের মতো লাংগুয়েজ ফিচার যুক্ত করেছে। 

টাইপস্ক্রিপ্ট 5.0 ১৬-ই মার্চ ২০২৩ এ প্রকাশিত হয়েছিল এবং এতে ডেকোরেটরদের জন্য সমর্থন অন্তর্ভুক্ত ছিল। 

### ECMAScript 2015 সমর্থন
টাইপস্ক্রিপ্ট অনেক ফিচার ব্যবহারে সুযোগ দেয়। যেমন ক্লাস, মডিউল, এবং ECMAScript 2015 স্ট্যান্ডার্ডে সংজ্ঞায়িত একটি Arrow Function সিনট্যাক্সের মতো বৈশিষ্ট্যগুলির জন্য সমর্থন যোগ করে।

## নকশা
**TypeScript** তৈরি করা হয়েছিল JavaScript-এর সীমাবদ্ধতা দূর করার জন্য, বিশেষ করে বৃহৎ-পরিসরের অ্যাপ্লিকেশন ডেভেলপমেন্টে Microsoft এবং তাদের বহিরাগত গ্রাহকদের প্রয়োজন মেটাতে। জটিল JavaScript কোড পরিচালনার চ্যালেঞ্জগুলো ডেভেলপারদের এমন কিছু কাস্টম টুল তৈরির প্রয়োজনীয়তা অনুভব করায় যা ভাষাটিতে কম্পোনেন্ট ডেভেলপমেন্টকে সহজ করবে।

ডেভেলপাররা এমন একটি সমাধান চেয়েছিলেন যা ECMAScript (ES) স্ট্যান্ডার্ড এবং এর ইকোসিস্টেমের সাথে সামঞ্জস্য নষ্ট করবে না। এর জন্য একটি কম্পাইলার তৈরি করা হয় যা টাইপ অ্যানোটেশন এবং ক্লাসসহ JavaScript-এর একটি সুপারসেট (TypeScript ফাইল) থেকে পুনরায় স্ট্যান্ডার্ড ECMAScript 5 কোডে রূপান্তর করতে সক্ষম। TypeScript-এর ক্লাসগুলো তখনকার প্রস্তাবিত ECMAScript 6 ক্লাস স্পেসিফিকেশনের ওপর ভিত্তি করে ডিজাইন করা হয়েছিল, যাতে প্রোটোটাইপাল ইনহেরিট্যান্স লেখা কম জটিল ও ত্রুটিপ্রবণ হয়। টাইপ অ্যানোটেশন ফিচারটি IntelliSense এবং উন্নত টুলিংকে সক্ষম করে।

## ফিচারস
টাইপস্ক্রিপ্ট হল একটি language এক্সটেনশন, যা ECMAScript 6-এ বৈশিষ্ট্য যোগ করে। অতিরিক্ত বৈশিষ্ট্য অন্তর্ভুক্ত:

* টাইপ আ্যনোটেশান্স এবং কম্পাইল-টাইম টাইপ চেকিং
* টাইপ ইনফারেন্স
* টাইপ ইরেজার
* ইন্টারফেস
* জেনেরিক
* নেমস্পেস
* টুপলস
* Async/Await

নিম্নলিখিত ফিচারগুলো ECMAScript 2015 থেকে ব্যাকপোর্ট করা হয়েছে:

* ক্লাস
* মডিউল 
* Anonymous ফাংশনের জন্য সংক্ষিপ্ত Arrow Function
* Optional প্যারামিটার এবং ডিফল্ট প্যারামিটার

## তথ্যসূত্র

বিষয়শ্রেণী:স্ক্রিপ্টিং ভাষা
বিষয়শ্রেণী:ক্রস-প্ল্যাটফর্ম সফটওয়্যার
বিষয়শ্রেণী:২০১২-এর সফটওয়্যার
বিষয়শ্রেণী:জাভাস্ক্রিপ্ট প্রোগ্রামিং ভাষা পরিবার
বিষয়শ্রেণী:মাইক্রোসফটের মুক্ত সফটওয়্যার
বিষয়শ্রেণী:মাইক্রোসফট প্রোগ্রামিং ভাষা
বিষয়শ্রেণী:লক্ষ্য-ভিত্তিক প্রোগ্রামিং ভাষা
বিষয়শ্রেণী:২০১২-এ তৈরি প্রোগ্রামিং ভাষা
বিষয়শ্রেণী:অ্যাপাচি লাইসেন্স ব্যবহার করা সফটওয়্যার
বিষয়শ্রেণী:উৎস-থেকে-উৎস সঙ্কলক
বিষয়শ্রেণী:স্থিরভাবে টাইপ করা প্রোগ্রামিং ভাষা