TS صفحه کتاب مرجع جامع TypeScript — نسخهٔ آنلاین

نسخهٔ آنلاین، تصویرِ صفحه‌های حروف‌چینی‌شدهٔ کتاب است و متن آن قابل انتخاب نیست. برای بزرگ‌نمایی، روی هر صفحه کلیک کنید تا تصویر تمام‌اندازه در تب جدید باز شود؛ برای متنِ قابل انتخاب و جست‌وجو، نسخهٔ 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های ناهمگام، و انتشار پکیج با تست نوع. هشت پروژه کامل این بخش، ستون عملی کتاب‌اند.

صفحهٔ ۱۵۷ کتاب
۱۵۷
TypeScript در سیستم‌های Production

۳۴ · مرز داده بیرونی — اعتبارسنجی Runtime با Zod

پروژه ۱: نوع ایستا هیچ تضمینی درباره JSON واقعی نمی‌دهد

صفحهٔ ۱۵۸ کتاب
۱۵۸
صفحهٔ ۱۵۹ کتاب
۱۵۹
صفحهٔ ۱۶۰ کتاب
۱۶۰
صفحهٔ ۱۶۱ کتاب
۱۶۱
صفحهٔ ۱۶۲ کتاب
۱۶۲
TypeScript در سیستم‌های Production

۳۵ · کلاینت API تایپ‌شده با مدل خطای صریح

پروژه ۲: Result به‌جای exception — خطا به‌عنوان داده

صفحهٔ ۱۶۳ کتاب
۱۶۳
صفحهٔ ۱۶۴ کتاب
۱۶۴
صفحهٔ ۱۶۵ کتاب
۱۶۵
صفحهٔ ۱۶۶ کتاب
۱۶۶
صفحهٔ ۱۶۷ کتاب
۱۶۷
TypeScript در سیستم‌های Production

۳۶ · مدل‌سازی دامنه و ماشین حالت

پروژه ۳ و ۴: invariantهای کسب‌وکار در سطح نوع + state machine

صفحهٔ ۱۶۸ کتاب
۱۶۸
صفحهٔ ۱۶۹ کتاب
۱۶۹
صفحهٔ ۱۷۰ کتاب
۱۷۰
صفحهٔ ۱۷۱ کتاب
۱۷۱
صفحهٔ ۱۷۲ کتاب
۱۷۲
TypeScript در سیستم‌های Production

۳۷ · React با TypeScript

پروژه ۵: props، hookها، context، reducer و کامپوننت جنریک

صفحهٔ ۱۷۳ کتاب
۱۷۳
صفحهٔ ۱۷۴ کتاب
۱۷۴
صفحهٔ ۱۷۵ کتاب
۱۷۵
صفحهٔ ۱۷۶ کتاب
۱۷۶
صفحهٔ ۱۷۷ کتاب
۱۷۷
صفحهٔ ۱۷۸ کتاب
۱۷۸
TypeScript در سیستم‌های Production

۳۸ · Next.js — مرز سرور و کلاینت

پروژه ۶: route handlerها، serialization و قرارداد API

صفحهٔ ۱۷۹ کتاب
۱۷۹
صفحهٔ ۱۸۰ کتاب
۱۸۰
صفحهٔ ۱۸۱ کتاب
۱۸۱
صفحهٔ ۱۸۲ کتاب
۱۸۲
صفحهٔ ۱۸۳ کتاب
۱۸۳
TypeScript در سیستم‌های Production

۳۹ · فرم‌ها، State ناهمگام و Event Emitter تایپ‌شده

پروژه ۷: چرخه کامل فرم + ابزار کتابخانه‌ای با نگاشت رویداد

صفحهٔ ۱۸۴ کتاب
۱۸۴
صفحهٔ ۱۸۵ کتاب
۱۸۵
صفحهٔ ۱۸۶ کتاب
۱۸۶
صفحهٔ ۱۸۷ کتاب
۱۸۷
صفحهٔ ۱۸۸ کتاب
۱۸۸
صفحهٔ ۱۸۹ کتاب
۱۸۹
TypeScript در سیستم‌های Production

۴۰ · انتشار پکیج — اعلان عمومی و تست نوع

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

صفحهٔ ۱۹۰ کتاب
۱۹۰
صفحهٔ ۱۹۱ کتاب
۱۹۱
صفحهٔ ۱۹۲ کتاب
۱۹۲
پیوست‌ها

مرجع‌های کاربردی پایان کتاب

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

صفحهٔ ۱۹۳ کتاب
۱۹۳
صفحهٔ ۱۹۴ کتاب
۱۹۴
پیوست

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

صفحهٔ ۱۹۵ کتاب
۱۹۵
صفحهٔ ۱۹۶ کتاب
۱۹۶
صفحهٔ ۱۹۷ کتاب
۱۹۷
صفحهٔ ۱۹۸ کتاب
۱۹۸
صفحهٔ ۱۹۹ کتاب
۱۹۹
صفحهٔ ۲۰۰ کتاب
۲۰۰
صفحهٔ ۲۰۱ کتاب
۲۰۱
پیوست

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

صفحهٔ ۲۰۲ کتاب
۲۰۲
صفحهٔ ۲۰۳ کتاب
۲۰۳
صفحهٔ ۲۰۴ کتاب
۲۰۴
پیوست

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

صفحهٔ ۲۰۵ کتاب
۲۰۵
صفحهٔ ۲۰۶ کتاب
۲۰۶
صفحهٔ ۲۰۷ کتاب
۲۰۷
پیوست

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

صفحهٔ ۲۰۸ کتاب
۲۰۸
صفحهٔ ۲۰۹ کتاب
۲۰۹
پیوست

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

صفحهٔ ۲۱۰ کتاب
۲۱۰
صفحهٔ ۲۱۱ کتاب
۲۱۱
پیوست

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

صفحهٔ ۲۱۲ کتاب
۲۱۲
صفحهٔ ۲۱۳ کتاب
۲۱۳
صفحهٔ ۲۱۴ کتاب
۲۱۴
صفحهٔ ۲۱۵ کتاب
۲۱۵
پیوست

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

صفحهٔ ۲۱۶ کتاب
۲۱۶
صفحهٔ ۲۱۷ کتاب
۲۱۷
پیوست

منابع و مآخذ

صفحهٔ ۲۱۸ کتاب
۲۱۸
صفحهٔ ۲۱۹ کتاب
۲۱۹
پایان

پشت جلد

صفحهٔ ۲۲۰ کتاب
۲۲۰