بعد از این درس چه کاری میتوانی انجام بدهی؟
- TypeScript پیش از اجرا رابطه نوعها را بررسی میکند و در پایان JavaScript قابل اجرای مرورگر میسازد.
- نمونه را اجرا کنی و نتیجه را پیش از تغییر حدس بزنی
- یک تغییر کوچک بدهی و اثرش را در مرورگر توضیح بدهی
- خطای این درس را با DevTools یا اعتبارسنج پیدا و اصلاح کنی
TypeScript را ساده بفهم
TypeScript رابطه دادهها را پیش از اجرا بررسی میکند، اما مرزهای runtime هنوز به اعتبارسنجی نیاز دارند.
اگر نتیجه عجیب بود، اول همان عنصر را در DevTools انتخاب کن؛ ساختار و قانونهای واقعاً اعمالشده از حدسزدن سریعتر راه را نشان میدهند.
چرا مهم است؟ TypeScript پیش از اجرا رابطه نوعها را بررسی میکند و در پایان JavaScript قابل اجرای مرورگر میسازد.
اولین تمرین تو: quantity را موقتاً رشته قرار بده، پیام type checker را بخوان و سپس اصلاح کن. پیش از تازهکردن صفحه، نتیجه را در یک جمله حدس بزن و بعد حدست را با مرورگر مقایسه کن.
این درس را از چهار زاویه بفهم
قرار نیست چیزی را حفظ کنی. یک مفهوم را با چند تعبیر میبینی تا بالاخره تصویر ذهنی روشن خودت را بسازی.
خیلی ساده
TypeScript زبانی برای تبدیل فکر به دستورهای دقیق است. برنامه یک ورودی میگیرد، کاری روی آن انجام میدهد و نتیجهای قابل مشاهده میسازد.
تشبیه اول: دستور کار
کد مثل دستور کار یک همکار دقیق است: ترتیب مهم است، نامها باید روشن باشند و هر مرحله باید نتیجه مشخصی داشته باشد.
تشبیه دوم: خط تولید
داده وارد خط میشود، چند ایستگاه آن را تغییر میدهند و خروجی بیرون میآید. با بررسی هر ایستگاه میتوانیم خطا را پیدا کنیم.
مدل فنی
در مدل فنی، محیط اجرای زبان کد را میخواند، ساختارش را بررسی میکند و دستورها را بهترتیب اجرا یا ارزیابی میکند.
ورودی
چه دادهای وارد میشود؟ نام، عدد، کلیک یا درخواست؟
پردازش
برنامه چه قانون یا محاسبهای را اجرا میکند؟
خروجی
چه نتیجهای باید ببینی و چطور درستی آن را میسنجی؟
هر خط دقیقاً چه کاری انجام میدهد؟
از بالا به پایین بخوان. ابتدا توضیح را ببین، سپس همان خط را در کارگاه پایین صفحه تغییر بده.
const unitPrice: number = 180000;یک مقدار را داخل نامی روشن نگه میدارد تا در خطهای بعد دوباره از آن استفاده کنیم.
const quantity: number = 2;یک مقدار را داخل نامی روشن نگه میدارد تا در خطهای بعد دوباره از آن استفاده کنیم.
const total: number = unitPrice * quantity;یک مقدار را داخل نامی روشن نگه میدارد تا در خطهای بعد دوباره از آن استفاده کنیم.
console.log(total);نتیجه یا پیام را از داخل برنامه بیرون میآورد تا آن را ببینیم.
کلمههایی که نباید گنگ بمانند
کد
متنی با قواعد مشخص که کار مورد انتظار را برای کامپیوتر توضیح میدهد.
نحو یا Syntax
دستور زبان کد؛ مثل جای درست کلمات و نشانهها در یک جمله.
متغیر
یک نام خوانا برای نگهداشتن مقداری که بعداً لازم داریم.
خروجی
نتیجه قابل مشاهدهای که برای بررسی برنامه بیرون میآید.
سه «چرا»ی مهم درس اول
چرا کامپیوتر خودش منظور من را حدس نمیزند؟
چون برنامه بر اساس دستورهای دقیق و قابل تکرار کار میکند. این دقت باعث میشود همان ورودی، نتیجهای پیشبینیپذیر بسازد. ابهام برای گفتوگوی انسانی طبیعی است، اما در کد باید تصمیمها را روشن بنویسیم.
چرا از برنامهای به این کوچکی شروع میکنیم؟
در نمونه کوچک، رابطهٔ علت و نتیجه واضح است. اگر فقط یک مقدار را تغییر بدهی، دقیقاً میفهمی چرا خروجی عوض شده؛ بعد همین فهم را به پروژههای بزرگ منتقل میکنی.
اگر خطا دیدم یعنی برای برنامهنویسی مناسب نیستم؟
نه. خطا گزارش محیط اجرا دربارهٔ چیزی است که نفهمیده یا نتوانسته انجام دهد. خط اول پیام، شماره خط و آخرین تغییری که دادهای سه سرنخ اصلی تو هستند.
از مشاهده تا نوشتن مستقل
هر مرحله فقط کمی سختتر از مرحله قبل است؛ لازم نیست یکباره همهچیز را بلد باشی.
خروجی را حدس بزن
بدون اجرا، نتیجه نمونه را روی کاغذ بنویس. سپس آن را با نتیجه کارگاه مقایسه کن.
یک داده را تغییر بده
فقط نام یا عدد را عوض کن. توضیح بده کدام بخش خروجی باید تغییر کند و کدام بخش ثابت میماند.
یک خروجی تازه بساز
یک داده جدید مثل شهر یا هدف یادگیری بساز و با همان الگوی ساده آن را نمایش بده.
معیار موفقیت: کامپایل بدون خطا انجام و عدد ۳۶۰۰۰۰ چاپ میشود.
از یک مثال کوچک شروع کن
TypeScript پیش از اجرا رابطه نوعها را بررسی میکند و در پایان JavaScript قابل اجرای مرورگر میسازد. نمونه کوتاه زیر را در فایل «src/index.ts» بنویس و صفحه را تازه کن. بعد از دیدن نتیجه، سراغ تغییر پیشنهادی برو؛ هدف حفظکردن نشانهها نیست، باید بفهمی کدام خط چه اثری روی صفحه گذاشت.
۱. نمونه را خودت تایپ کن
فایل را ذخیره کن و نتیجه را با انتظار این درس مقایسه کن.
۲. تغییر درس را انجام بده
quantity را موقتاً رشته قرار بده، پیام type checker را بخوان و سپس اصلاح کن.
۳. خطا را عمداً ببین
قرار دادن "2" در متغیر number خطای Type string is not assignable to type number میدهد. سپس DevTools یا HTML Validator را باز کن و فقط همان علت را اصلاح کن.
اگر نتیجه عجیب بود، اول همان عنصر را در DevTools انتخاب کن؛ ساختار و قانونهای واقعاً اعمالشده از حدسزدن سریعتر راه را نشان میدهند.
سه قطعهای که باید بفهمی
راهاندازی TypeScript و اولین خطای مفید
TypeScript پیش از اجرا رابطه نوعها را بررسی میکند و در پایان JavaScript قابل اجرای مرورگر میسازد.
نتیجه قابل مشاهده
کامپایل بدون خطا انجام و عدد ۳۶۰۰۰۰ چاپ میشود.
نشانه خطا
قرار دادن "2" در متغیر number خطای Type string is not assignable to type number میدهد.
فاکتور JavaScript گاهی قیمت را بهصورت متن میگیرد و جمع اشتباه میشود.
فرض کن فاکتور JavaScript گاهی قیمت را بهصورت متن میگیرد و جمع اشتباه میشود. صفحه باز میشود، اما هنوز این بخش برای کاربر درست و قابل فهم نیست. در این درس فقط همان قسمت را میسازیم تا رابطه کد و نتیجه گم نشود.
قطعهها را به ترتیب درست بچین
روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمههای جابهجایی هم میتوانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.
بررسی ساختار تمرین
این صفحه کامپایلر کامل TypeScript نیست؛ ساختار تمرین را صادقانه بررسی میکند و خروجی مورد انتظار را نشان میدهد. برای اجرای کامل به محیط رسمی همان زبان نیاز است.
یک بخش را تغییر بده و دکمه بررسی را بزن.
راهنماییها مرحلهای هستند؛ اول خودت پیام خطا را بخوان.
quantity را موقتاً رشته قرار بده، پیام type checker را بخوان و سپس اصلاح کن. پیش از تازهکردن صفحه، نتیجه را در یک جمله حدس بزن و بعد حدست را با مرورگر مقایسه کن.
این سه اشتباه را انجام نده
قرار دادن "2" در متغیر number خطای Type string is not assignable to type number میدهد.
تغییر چند بخش همزمان و نامشخصشدن علت نتیجه
اعتماد به ظاهر یک اندازه صفحه و بررسینکردن موبایل یا صفحهکلید
با 5 سؤال مطمئن شو که مفهوم را گرفتهای
در این درس چه چیزی باید در مرورگر دیده شود؟
چرا فقط یک بخش را تغییر میدهیم؟
اولین سرنخ خطای این درس چیست؟
بعد از تغییر کد چه کاری مفید است؟
چه زمانی آماده درس بعدی هستی؟
فهمیدی، تغییر دادی، نتیجه را توضیح دادی؟
فقط در این صورت درس را کامل کن و سراغ مرحله بعد برو.