نسخهٔ آنلاین، تصویرِ صفحههای حروفچینیشدهٔ کتاب است و متن آن قابل انتخاب نیست. برای بزرگنمایی، روی هر صفحه کلیک کنید تا تصویر تماماندازه در تب جدید باز شود؛ برای متنِ قابل انتخاب و جستوجو، نسخهٔ PDF را دریافت کنید.
جلد، شناسنامه و راهنمای خواندن
طراحی جلد، فهرست کامل مطالب و سه مسیر پیشنهادی مطالعه






بنیادها و مدل ذهنی سیستم نوع
پیش از آنکه بتوانی نوعهای پیچیده طراحی کنی، باید بتوانی رفتار کامپایلر را پیشبینی کنی. این بخش مدل ذهنی TypeScript را میسازد: تحلیل ایستا در برابر رفتار زمان اجرا، استنتاج نوع، سازگاری ساختاری، و تحلیل جریان کنترل. هر فصل با مثالهای کامپایلشده و خطاهای واقعی کامپایلر همراه است.

۰۱ · TypeScript چه چیزی به JavaScript اضافه میکند؟
تحلیل ایستا، Type Erasure و مرز دقیق بین Compile-Time و Runtime




۰۲ · راهاندازی پروژه و زنجیره ابزار
tsc، ادیتور، اجرای مستقیم TS و نقش هر ابزار در Toolchain




۰۳ · tsconfig.json — طراحی آگاهانه پیکربندی
strict و خانوادهاش، target/module و گزینههایی که معنای برنامه را عوض میکنند





۰۴ · استنتاج نوع و Contextual Typing
کامپایلر از کجا نوع را حدس میزند — و کی باید خودت annotation بنویسی




۰۵ · نوعهای اولیه، Literal Types و Widening
چرا let x = "a" نوع string میگیرد اما const x نوع "a"




۰۶ · نوعهای شیئی و Structural Typing
سازگاری بر اساس شکل، نه نام — و استثنای Excess Property Check




۰۷ · null و undefined — پایان «خطای میلیارد دلاری»
strictNullChecks، اپراتورهای ?. و ?? و الگوهای درست مقدار غایب




۰۸ · any، unknown، never و void
چهار نوع مرزی که کیفیت یک codebase را لو میدهند





۰۹ · Union و Intersection
جبرِ نوعها: «یا»، «و»، و رفتار دسترسی به اعضا




۱۰ · Narrowing و تحلیل جریان کنترل
کامپایلر کد تو را خطبهخط میخواند — typeof، in، instanceof و discriminant





۱۱ · توابع — قرارداد ورودی و خروجی
نوع تابع، پارامتر اختیاری، rest، this و نوع بازگشتی





۱۲ · آرایه، Tuple، readonly — و هنر خواندن خطای کامپایلر
ساختارهای ترتیبی + روش سیستماتیک تفسیر پیامهای خطا




طراحی نوع پیشرفته
اینجا TypeScript از «حاشیهنویسی کد» به «زبان طراحی» تبدیل میشود. جنریکها، conditional و mapped typeها، template literalها و الگوهای برندسازی نوع — همراه با معیار همیشگی این کتاب: هر abstraction باید هزینه خوانایی و نگهداریاش را توجیه کند.

۱۳ · interface و type — یک انتخاب مهندسی
تفاوتهای واقعی، declaration merging و قاعده انتخاب در تیم




۱۴ · جنریکها — پارامتر نوع، Constraint و Default
متغیرِ نوع: همان منطق پارامتر تابع، یک طبقه بالاتر





۱۵ · جنریک در عمل — API و کامپوننت قابلاستفاده مجدد
از تابع جنریک تا کلاس، interface جنریک و الگوی Builder





۱۶ · keyof، typeof و Indexed Access
سه اپراتور کوچک که اتصال نوعها به داده واقعی را ممکن میکنند





۱۷ · Conditional Types و infer
if/else در سطح نوع — و استخراج نوع از دل ساختارها





۱۸ · Mapped Types و Key Remapping
حلقه for روی کلیدها: ساخت نوع از نوع




۱۹ · Template Literal Types
رشتهها در سطح نوع — از event name تا route تایپشده





۲۰ · Utility Types — استاندارد و سفارشی
Partial تا Omit: ابزارهای آماده، و ساخت تبدیلهای خودت




۲۱ · as const، satisfies و Const Type Parameters
سه ابزار برای نگهداشتن دقیقترین نوع بدون از دست دادن بررسی





۲۲ · Discriminated Union و Exhaustiveness
مهمترین الگوی مدلسازی در TypeScript واقعی





۲۳ · Type Predicate، Assertion Function و Branded Types
گسترش narrowing با توابع خودت — و نوع اسمی روی زیرساخت ساختاری





۲۴ · Variance و سازگاری توابع
چرا (x: Animal) => void به (x: Cat) => void قابل انتساب است — و برعکس نه





۲۵ · Overload، Declaration Merging و Module Augmentation
چند امضا برای یک تابع، و گسترش نوعهای دیگران




۲۶ · برنامهنویسی Type-Level — قدرت، هزینه و مرز عقل
نوعهای بازگشتی، کارایی کامپایلر و طراحی API عمومی خوانا




کامپایلر، ابزار و معماری
TypeScript فقط یک زبان نیست؛ یک زنجیره ابزار است. این بخش ماژولها و resolution، فایلهای اعلان، مهاجرت تدریجی، تست نوع، CI و گذار تاریخی TypeScript 6 به 7 (کامپایلر native) را پوشش میدهد — با معیار انتخاب، نه فهرست گزینهها.

۲۷ · خانواده strict — طراحی سطح سختگیری
از noImplicitAny تا exactOptionalPropertyTypes و noUncheckedIndexedAccess




۲۸ · ماژولها — ESM، CommonJS و Module Resolution
target، lib، module و nodenext؛ جایی که بیشتر پروژهها زمین میخورند




۲۹ · فایلهای اعلان و @types
d.ts، DefinitelyTyped و نوشتن اعلان برای کد بدون نوع





۳۰ · مهاجرت از JavaScript — تدریجی و قابل برگشت
checkJs، JSDoc و استراتژی مهاجرت ماژولبهماژول




۳۱ · Project References، Monorepo و CI
بررسی نوع تکرارپذیر در مقیاس تیم




۳۲ · تست نوع، دیباگ خطاهای پیچیده و کارایی کامپایلر
جلوگیری از رگرسیون نوع و پروفایلگیری عملی





۳۳ · گذار TypeScript 6 به 7 — کامپایلر Native
وضعیت ۲۰۲۶: پورت Go، deprecationها و برنامه مهاجرت ابزارها




TypeScript در سیستمهای Production
بخش پایانی، همه ابزارهای کتاب را به مسئلههای واقعی وصل میکند: مرز داده بیرونی و اعتبارسنجی runtime، کلاینت API با مدل خطای صریح، مدلسازی دامنه، React و Next.js، فرمها و stateهای ناهمگام، و انتشار پکیج با تست نوع. هشت پروژه کامل این بخش، ستون عملی کتاباند.

۳۴ · مرز داده بیرونی — اعتبارسنجی Runtime با Zod
پروژه ۱: نوع ایستا هیچ تضمینی درباره JSON واقعی نمیدهد





۳۵ · کلاینت API تایپشده با مدل خطای صریح
پروژه ۲: Result بهجای exception — خطا بهعنوان داده





۳۶ · مدلسازی دامنه و ماشین حالت
پروژه ۳ و ۴: invariantهای کسبوکار در سطح نوع + state machine





۳۷ · React با TypeScript
پروژه ۵: props، hookها، context، reducer و کامپوننت جنریک






۳۸ · Next.js — مرز سرور و کلاینت
پروژه ۶: route handlerها، serialization و قرارداد API





۳۹ · فرمها، State ناهمگام و Event Emitter تایپشده
پروژه ۷: چرخه کامل فرم + ابزار کتابخانهای با نگاشت رویداد






۴۰ · انتشار پکیج — اعلان عمومی و تست نوع
پروژه ۸: از declaration emit تا جلوگیری از شکستن مصرفکنندهها



مرجعهای کاربردی پایان کتاب
از ۵۰ پرسش مصاحبه تا واژهنامه، چکلیست مهاجرت و الگوهای طراحی نوع


۵۰ پرسش مصاحبه با پاسخ تشریحی







واژهنامه فارسی–انگلیسی



مرجع تصمیم گزینههای کامپایلر



راهنمای عیبیابی سیستم نوع


چکلیست مهاجرت از JavaScript


الگوهای طراحی نوع قابلاستفاده مجدد




نقشه راه نهایی


منابع و مآخذ


پشت جلد
