چرا باید تایپاسکریپت و یاد بگیریم؟ 😀
یکی از جذابترین تکنولوژیهایی که وارد دنیای توسعه وب شده قطعا زبان برنامه نویسی Typescript هست.
تایپ اسکریپت یک زبان برنامه نویسی مبتنی بر جاوا اسکریپته که توسط شرکت مایکروسافت توسعه یافته. تایپ اسکریپت به عنوان یک Superset برای جاوا اسکریپت در نظر گرفته میشه.
منظور از Superset بودن یک زبان برنامه نویسی اینه که مبتنی بر یک زبان برنامه نویسی دیگه هست و ویژگیهای زیادی و به اون زبان اضافه میکنه.
اما جدای از این موارد تایپ اسکریپت چه ویژگیهایی داره که به ما ارائه کنه؟😀
🔢 فرایند یادگیری آسان
تایپ اسکریپت فرایند یادگیری بسیار سادهای داره و نیازمند دوره های آموزشی طولانی نیست. برای یادگیری تایپ اسکریپت ابتدا نیاز دارین که به خوبی با جاوا اسکریپت آشنایی داشته باشید. در این صورت به راحتی میتونید به یادگیری تایپ اسکریپت بپردازید.
🔢 ترجمه به جاوا اسکریپت
تایپ اسکریپت قابلیت اجرا شدن به صورت مستقیم و نداره چرا که به کدهای صفر و یک تبدیل نمیشه. به جای این تایپ اسکریپت کدهاشو و به جاوا اسکریپت تبدیل میکنه و کدها را در نهایت اجرا میکنه. این مسئله باعث سازگاری بیشتر میشه و مهم نیست که شما از چه پلتفرم یا مرورگری استفاده میکنید.
🔢 شئگرایی قدرتمند
تایپ اسکریپت یک زبان برنامه نویسی توانمند و بسیار قدرتمند در زمینه پارادایم شئگرایی هست و تمام ویژگیهای یک سیستم برنامه نویسی شئگرا مانند جاوا و در اختیارتون قرار میده.
🔢 پشتیبانی از کتابخانههای مختلف
اکثر فریمورکهای محبوب و پر استفاده جاوا اسکریپت مثل انگولار، ریاکت، ویو و اکسپرس و ... به خوبی از توانمندیهای تایپ اسکریپت پشتیبانی میکنند.
یادگیری تایپ اسکریپت قطعا برای هر دولوپری لازمه و ویژگی جدیدی و به رزومه کاریتون اضافه میکنه که شما رو به یک توسعه دهنده کارآمدتر تبدیل خواهد کرد🔥
Document😀
#typeScript
@CodeModule
یکی از جذابترین تکنولوژیهایی که وارد دنیای توسعه وب شده قطعا زبان برنامه نویسی Typescript هست.
تایپ اسکریپت یک زبان برنامه نویسی مبتنی بر جاوا اسکریپته که توسط شرکت مایکروسافت توسعه یافته. تایپ اسکریپت به عنوان یک Superset برای جاوا اسکریپت در نظر گرفته میشه.
منظور از Superset بودن یک زبان برنامه نویسی اینه که مبتنی بر یک زبان برنامه نویسی دیگه هست و ویژگیهای زیادی و به اون زبان اضافه میکنه.
اما جدای از این موارد تایپ اسکریپت چه ویژگیهایی داره که به ما ارائه کنه؟
تایپ اسکریپت فرایند یادگیری بسیار سادهای داره و نیازمند دوره های آموزشی طولانی نیست. برای یادگیری تایپ اسکریپت ابتدا نیاز دارین که به خوبی با جاوا اسکریپت آشنایی داشته باشید. در این صورت به راحتی میتونید به یادگیری تایپ اسکریپت بپردازید.
تایپ اسکریپت قابلیت اجرا شدن به صورت مستقیم و نداره چرا که به کدهای صفر و یک تبدیل نمیشه. به جای این تایپ اسکریپت کدهاشو و به جاوا اسکریپت تبدیل میکنه و کدها را در نهایت اجرا میکنه. این مسئله باعث سازگاری بیشتر میشه و مهم نیست که شما از چه پلتفرم یا مرورگری استفاده میکنید.
تایپ اسکریپت یک زبان برنامه نویسی توانمند و بسیار قدرتمند در زمینه پارادایم شئگرایی هست و تمام ویژگیهای یک سیستم برنامه نویسی شئگرا مانند جاوا و در اختیارتون قرار میده.
اکثر فریمورکهای محبوب و پر استفاده جاوا اسکریپت مثل انگولار، ریاکت، ویو و اکسپرس و ... به خوبی از توانمندیهای تایپ اسکریپت پشتیبانی میکنند.
یادگیری تایپ اسکریپت قطعا برای هر دولوپری لازمه و ویژگی جدیدی و به رزومه کاریتون اضافه میکنه که شما رو به یک توسعه دهنده کارآمدتر تبدیل خواهد کرد
Document
#typeScript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
www.typescriptlang.org
JavaScript With Syntax For Types.
TypeScript extends JavaScript by adding types to the language. TypeScript speeds up your development experience by catching errors and providing fixes before you even run your code.
تایپ اسکریپت و مثل ماست یاد بگیر 🥶
این سایتی که بهتون معرفی میکنم کلی آموزش، چالش و نمونه سورس کد در زمینه تایپ اسکریپت داره و به راحتی، میتونید مهارتتون و تقویت کنید.
⚡️ https://typehero.dev/
#typeScript
@CodeModule
این سایتی که بهتون معرفی میکنم کلی آموزش، چالش و نمونه سورس کد در زمینه تایپ اسکریپت داره و به راحتی، میتونید مهارتتون و تقویت کنید.
#typeScript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
تایپ اسکریپت و با این کتاب یاد بگیر! 🥶
در پست های قبلی راجب اهمیت تایپ اسکریپت و ویژگی های کلیدیش صحبت کردیم. امروز میخوام کتابی بهتون معرفی کنم که به طور جامع، تایپ اسکریپت و توضیح و شرح میده💀
Download🌐
#typescript
@CodeModule
در پست های قبلی راجب اهمیت تایپ اسکریپت و ویژگی های کلیدیش صحبت کردیم. امروز میخوام کتابی بهتون معرفی کنم که به طور جامع، تایپ اسکریپت و توضیح و شرح میده
Download
#typescript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
چرا به جای تایپ any از unknown استفاده کنیم؟ 🥶
همونطور که میدونید Any به معنای «هر چیزی» هست. پس بنابراین اگر این تایپ رو برای متغیری ست کنیم، یعنی این اجازه رو بهش دادیم که هر مقدار و داده ای رو بتونه قبول کنه. این تایپ، تمام ویژگیهای تایپ اسکریپت از جمله بررسی تایپ، تکمیل خودکار و safety رو غیرفعال میکنه.
در مقابل تایپ unknown ، ورژن Type Safe تایپ any هست. یعنی با استفاده از unknown میتونیم با امنیت بیشتری نسبت به any کدنویسی کنیم. اما این امنیت یعنی چی و چرا باید unknown و به any ترجیح بدیم؟🤔
🔵 ایمنی بیشتر
تایپ any به تایپچکر اجازه میده که به هر نوع داده ای بدون هیچ بررسی خاصی، دسترسی داشته باشه. این میتونه منجر به بروز خطاهایی در زمان اجرا بشه، زیرا تایپچکر نمیتونه اطمینان حاصل کنه که عملیاتهای انجام شده بر روی متغیر ایمن هستن یا نه.
اما تایپ unknown تایپچکر رو مجبور میکنه تا قبل از استفاده از داده، نوعش رو بررسی کنه. این باعث میشه که کد ایمنتر باشه و خطاهای کمتری در زمان اجرا رخ بده.
🔵 بهبود خوانایی و نگهداری کد
استفاده از تایپ unknown باعث میشه که کد شما مستند تر باشه. به دیگران و همچنین به خودتون نشون میده که قصد دارید نوع متغیر رو قبل از استفاده مشخص کنید. اما تایپ any این مفهوم رو نمیرسونه و میتونه به سوءتفاهمها و خطاهایی منجر بشه.
به طور خلاصه، استفاده از تایپ unknown به جای any باعث افزایش ایمنی و خوانایی کد میشه، و از خطاهای احتمالی جلوگیری میکنه. به همین دلیل توصیه میشه که در مواقعی که نوع دادهای مشخص نیست، از تایپ unknown استفاده کنیم⚡️
#typescript
@CodeModule
همونطور که میدونید Any به معنای «هر چیزی» هست. پس بنابراین اگر این تایپ رو برای متغیری ست کنیم، یعنی این اجازه رو بهش دادیم که هر مقدار و داده ای رو بتونه قبول کنه. این تایپ، تمام ویژگیهای تایپ اسکریپت از جمله بررسی تایپ، تکمیل خودکار و safety رو غیرفعال میکنه.
در مقابل تایپ unknown ، ورژن Type Safe تایپ any هست. یعنی با استفاده از unknown میتونیم با امنیت بیشتری نسبت به any کدنویسی کنیم. اما این امنیت یعنی چی و چرا باید unknown و به any ترجیح بدیم؟
تایپ any به تایپچکر اجازه میده که به هر نوع داده ای بدون هیچ بررسی خاصی، دسترسی داشته باشه. این میتونه منجر به بروز خطاهایی در زمان اجرا بشه، زیرا تایپچکر نمیتونه اطمینان حاصل کنه که عملیاتهای انجام شده بر روی متغیر ایمن هستن یا نه.
اما تایپ unknown تایپچکر رو مجبور میکنه تا قبل از استفاده از داده، نوعش رو بررسی کنه. این باعث میشه که کد ایمنتر باشه و خطاهای کمتری در زمان اجرا رخ بده.
استفاده از تایپ unknown باعث میشه که کد شما مستند تر باشه. به دیگران و همچنین به خودتون نشون میده که قصد دارید نوع متغیر رو قبل از استفاده مشخص کنید. اما تایپ any این مفهوم رو نمیرسونه و میتونه به سوءتفاهمها و خطاهایی منجر بشه.
به طور خلاصه، استفاده از تایپ unknown به جای any باعث افزایش ایمنی و خوانایی کد میشه، و از خطاهای احتمالی جلوگیری میکنه. به همین دلیل توصیه میشه که در مواقعی که نوع دادهای مشخص نیست، از تایپ unknown استفاده کنیم
#typescript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
تفاوت Type Alias و Interface در تایپاسکریپت 🥶
تایپ Alias و اینترفیس شباهتهای خیلی زیادی بهم دارن و تقریباً هر جایی میتونن بجای همدیگه استفاده بشن. اما یه سری تفاوت ها بینشون هست که تو این پست با هم بررسیشون میکنیم.
همونطور که میدونید، میتونیم تایپ های دلخواهمون رو با استفاده از Type Alias به شکل زیر تعریف میکنیم:
اما اگه با اینترفیسهای آشنایی داشته باشید، میدونید که تایپ بالا رو خیلی راحت میتونیم با یک اینترفیس هم بنویسیم:
نحوهٔ استفاده از این اینترفیس هیچ تفاوتی با تایپی که ساختیم نداره و میتونه توی مثال بالا استفاده بشه. در واقع توی خیلی از جاها این دو ویژگی میتونن به همین شکل بجای همدیگه استفاده بشن.
پس چه تفاوتهایی وجود داره؟🤔
1⃣ کار با مقادیر Primitive
این یکی از مهمترین تفاوتهای این دو ویژگی هست. تو مثالهای بالا دیدیم که ما تونستیم برای تایپ string یک تایپ با اسم دلخواه خودمون بسازیم. همونطور که میدونیم string یک Primitive (مقدار غیر آبجکتی) هست و ما برای کار با مقادیر Primitive نمیتونیم از اینترفیسها استفاده کنیم. در واقع ما از اینترفیسها فقط میتونیم برای شکل دادن به آبجکتها استفاده کنیم. اما با Type Alias میتونیم هم برای مقادیر آبجکتی و هم Primitive ها تایپ دلخواه بسازیم:
2⃣ Merge کردن اینترفیسها و Type Aliases
یک تفاوت مهم دیگه (شاید مهمترین تفاوت) این دو ویژگی اینه که ما توی یک برنامه میتونیم چند اینترفیس با اسمهای یکسان داشته باشیم. اما این کار برای تایپها شدنی نیست و ما خطا میگیریم:
توی کد بالا دو اینترفیس اول با هم ترکیب (Merge) شدن و یک اینترفیس شامل پراپرتیهای age و name رو تشکیل دادن. اما داشتن دو تایپ همنام توی برنامه شدنی نیست:
برای اینکه پست زیادی طولانی نشه، ادامه تفاوت هارو توی این تلگراف نوشتم.
در نهایت، انتخاب بین این دو به نیازهای خاص پروژه شما بستگی داره و در بسیاری از موارد، میتونید از هر دو با هم استفاده کنید تا بهترین نتیجه رو بگیرید. اگر به تداخل یا گسترش نیاز دارید، از interface استفاده کنید. اما اگر نیاز به تعریف انواع پیچیدهتری دارید یا میخواید از ترکیبات یونین یا تقاطع استفاده کنید، type alias مناسبتره.
#typescript
@CodeModule
تایپ Alias و اینترفیس شباهتهای خیلی زیادی بهم دارن و تقریباً هر جایی میتونن بجای همدیگه استفاده بشن. اما یه سری تفاوت ها بینشون هست که تو این پست با هم بررسیشون میکنیم.
همونطور که میدونید، میتونیم تایپ های دلخواهمون رو با استفاده از Type Alias به شکل زیر تعریف میکنیم:
type Person = {
name: string;
age: number;
}
اما اگه با اینترفیسهای آشنایی داشته باشید، میدونید که تایپ بالا رو خیلی راحت میتونیم با یک اینترفیس هم بنویسیم:
interface Person {
name: string;
age: number;
}
نحوهٔ استفاده از این اینترفیس هیچ تفاوتی با تایپی که ساختیم نداره و میتونه توی مثال بالا استفاده بشه. در واقع توی خیلی از جاها این دو ویژگی میتونن به همین شکل بجای همدیگه استفاده بشن.
پس چه تفاوتهایی وجود داره؟
این یکی از مهمترین تفاوتهای این دو ویژگی هست. تو مثالهای بالا دیدیم که ما تونستیم برای تایپ string یک تایپ با اسم دلخواه خودمون بسازیم. همونطور که میدونیم string یک Primitive (مقدار غیر آبجکتی) هست و ما برای کار با مقادیر Primitive نمیتونیم از اینترفیسها استفاده کنیم. در واقع ما از اینترفیسها فقط میتونیم برای شکل دادن به آبجکتها استفاده کنیم. اما با Type Alias میتونیم هم برای مقادیر آبجکتی و هم Primitive ها تایپ دلخواه بسازیم:
interface Person {
name: string;
}
// or
type Person {
person: string;
}
type Name = string;
یک تفاوت مهم دیگه (شاید مهمترین تفاوت) این دو ویژگی اینه که ما توی یک برنامه میتونیم چند اینترفیس با اسمهای یکسان داشته باشیم. اما این کار برای تایپها شدنی نیست و ما خطا میگیریم:
interface Person {
name: string;
}
interface Person {
age: number;
}
const john: Person = {
name: "John",
age: 3,
};
توی کد بالا دو اینترفیس اول با هم ترکیب (Merge) شدن و یک اینترفیس شامل پراپرتیهای age و name رو تشکیل دادن. اما داشتن دو تایپ همنام توی برنامه شدنی نیست:
type Person = {
name: string;
}
type Person = {
age: number;
}
// Error: Duplicate identifier 'Person'
برای اینکه پست زیادی طولانی نشه، ادامه تفاوت هارو توی این تلگراف نوشتم.
در نهایت، انتخاب بین این دو به نیازهای خاص پروژه شما بستگی داره و در بسیاری از موارد، میتونید از هر دو با هم استفاده کنید تا بهترین نتیجه رو بگیرید. اگر به تداخل یا گسترش نیاز دارید، از interface استفاده کنید. اما اگر نیاز به تعریف انواع پیچیدهتری دارید یا میخواید از ترکیبات یونین یا تقاطع استفاده کنید، type alias مناسبتره.
#typescript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
تایپ های void و never، شاید در ظاهر شباهتهای زیادی به هم داشته باشن، اما کاربرد کاملاً متفاوتی دارن که در این پست با هم بررسیشون میکنیم
اگه تابعی داریم که هیچ چیزی ریترن نمیکنه، برای نوع خروجی اون از تایپ void استفاده میکنیم. به عبارت دیگه، وقتی تابعی رو میبینیم که خروجی اون void هست، به این معنیه که اون تابع چیزی رو ریترن نمیکنه. مثل کد زیر :
function logMessage(message: string): void {
console.log(message);
}
بعضی توابع ممکنه اصلاً به مرحلهٔ ریترن کردن هم نرسن. برای مثال به یک Error برخورد کنید و اصلا چیزی ریترن نشه. مثل کد زیر :
function throwError(message: string): never {
throw new Error(message);
}
در مجموع، تفاوت اصلی بین این دو تایپ اینه که void عملکردی رو نشون میده که هیچ مقداری رو بر نمیگردونه، در حالی که never توصیف یک عملکردیه که هیچگاه به پایان نمیرسه
#typescript #type #different
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
JSDoc یک سیستم Documentation برای جاوا اسکریپت هست که روی استانداردتر و درستتر نوشتن کدهای جاوا اسکریپت، براساس یکسری از پترن ها تمرکز داره. این سیستم براساس کامنتهایی که در خود سینتکس وجود داره کار میکنه.
برتری های JSDoc نسبت به TypeScript
JSDoc یک زبان یا تکنولوژی جدا از جاوا اسکریپت نیست. در واقع JSDoc همون جاوا اسکریپته با این تفاوت که شما برای تعریف بخشهای مختلف از سیستم کامنتنویسی استفاده میکنید، و از تکنولوژی جداگونهای مثل تایپ اسکریپت استفاده نخواهید کرد.
JSDoc تنها یک ابزار Type Checking نیست بلکه میتونه، برای تولید مستندات و تشریح چگونگی کارکرد بخشهای مختلف کدهاتون ازش استفاده کنید. تمام این موارد باعث میشه تا فرایند درک و نگهداری از کدها سادهتر بشه.
یکی از اصلیترین مزایای JSDoc حذف کردن فرایند کامپایلینگ هست. مرورگر نمیتونه به طور مستقیم تایپ اسکریپت رو بخونه و نیاز به کامپایل شدن به جاوا اسکریپت رو داره، و این ممکنه زمان بر باشه، ولی JsDoc مستقیما از خود جاوااسکریپت خونده میشه و در نتیجه سرعت بهتری خواهیم داشت.
برتری های TypeScript نسبت به JSDoc
تایپ اسکریپت یک مدل قدرتمند و جامع، از تایپهای مختلف رو ارائه میکنه و همچنین امکانات کاملی برای Error Handling رو تحویل ما میده. برخلاف JSDoc که سیستم تایپینگ اون در داخل کد جاوا اسکریپت تعریف میشه، تایپ اسکریپت به صورت مستقل عمل میکنه و از یک سیستم منحصر به فرد استفاده میکنه.
با وجود سیستم تعریف تایپ دادهای، تایپ اسکریپت خودش هم میتونه تایپ دادهای یک متغیر رو براساس مقدار انتسابی تعیین کنه. این موضوع در بعضی از موارد باعث میشه تا نیازی به تعریف صریح تایپ های دادهای نباشه، و کدبیس سادهتری داشته باشیم.
تایپ اسکریپت خودش رو به سرعت با نسخههای جدید جاوا اسکریپت تطبیق میده و همچنین، کامیونیتی قدرتمندتری به نسبت JSDoc در اختیار داره. این موضوع باعث میشه که نسبت به JSDoc کمی دلسرد بشیم.
در نهایت باید بگیم که JSDoc به صورت رسمی به عنوان یک رقیب برای تایپ اسکریپت معرفی نشده، اما توانایی اینو داره که در آینده نه چندان دور با تایپ اسکریپت رقابت کنه. پیشنهاد میکنم یه سر به داکیومنتش بزنید.
Document
#jsdoc #typescript #different
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
یک مرجع عالی برای تایپ اسکریپت 🥶
سایت Total TypeScript یک منبع آموزشی جامع برای یادگیری TypeScript هست که توسط Matt Pocock ایجاد شده. این سایت دورههای مختلف و محتوای آموزشی زیادی در مورد TypeScript ارائه میده، از جمله مباحث مقدماتی تا پیشرفته، بهترین شیوههای استفاده، نکات کلیدی برای بهینهسازی کدهای TypeScript و ...
از همه مهم تر یه قسمت جدید به سایت اضافه شده که یک کتابه ۱۶ چپتری هست، و از ابتدایی ترین مباحث تایپ اسکریپت شروع به آموزش میکنه. بهتون پیشنهاد میکنم حتما یک سر بزنید.
🔗 Link
#typescript
@CodeModule
سایت Total TypeScript یک منبع آموزشی جامع برای یادگیری TypeScript هست که توسط Matt Pocock ایجاد شده. این سایت دورههای مختلف و محتوای آموزشی زیادی در مورد TypeScript ارائه میده، از جمله مباحث مقدماتی تا پیشرفته، بهترین شیوههای استفاده، نکات کلیدی برای بهینهسازی کدهای TypeScript و ...
از همه مهم تر یه قسمت جدید به سایت اضافه شده که یک کتابه ۱۶ چپتری هست، و از ابتدایی ترین مباحث تایپ اسکریپت شروع به آموزش میکنه. بهتون پیشنهاد میکنم حتما یک سر بزنید.
🔗 Link
#typescript
@CodeModule
Total TypeScript
Professional TypeScript Training by Matt Pocock
Learn how to use TypeScript to level-up your applications as a web developer through exercise driven self-paced workshops and tutorials hosted by TypeScript wizard Matt Pocock.
حالا بریم سراغ چیزی که همه رو توی شبکههای اجتماعی و جاهای دیگه هیجانزده کرده. طبق پستهایی که توی X دیدم و یه اعلامیه که ظاهراً 11 مارس 2025 توی وبلاگ تایپاسکریپت منتشر شده، تیم مایکروسافت داره روی یه نسخه کاملاً جدید کار میکنه که با زبان Go بازنویسی شده. یعنی کمپایلر تایپاسکریپت که الان با خودش نوشته شده و به جاوااسکریپت تبدیل میشه، قراره به یه برنامه مستقل و سریع با Go تبدیل بشه.
هنوز معلوم نیست این تغییر به Go روی خود زبان (مثل دستورات یا ویژگیها) اثر میذاره یا فقط کمپایلر رو عوض میکنه
#typescript #go #news
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM