دوره آموزشی
آموزش های یودمی
دوبله زبان فارسی

درک تایپ‌اسکریپت

درک تایپ‌اسکریپت

✅ سرفصل و جزئیات آموزش

آنچه یاد خواهید گرفت:

  • استفاده از تایپ‌اسکریپت و ویژگی‌های آن مانند Types ،ES6 Support، کلاس‌ها، ماژول‌ها، رابط ها و بسیاری موارد دیگر در هر پروژه‌ای
  • درک اینکه تایپ‌اسکریپت واقعاً چیست و چه‌طور کار می‌کند.
  • چرا تایپ‌اسکریپت برتری واقعی نسبت به جاوااسکریپت خام ارائه می‌دهد.
  • آموزش ویژگی‌های پایه و پیشرفته (مثلاً "infer" ،"as const" ،"satisfies" و خیلی موارد دیگر!)
  • آشنایی با کلاس‌ها، رابط ها، تایپ های جنریک، تایپ های مشتق شده و سایر مفاهیم حیاتی
  • یادگیری تایپ‌اسکریپت به روش نظری و کاربردی در پروژه‌ها و موارد دنیای واقعی
  • چگونگی ترکیب تایپ‌اسکریپت با ReactJS یا NodeJS / Express

پیش نیازهای دوره

  • آگاهی از جاوااسکریپت مورد نیاز است، هرچند نیاز به کارشناس شدن نیست.
  • پیش‌نیاز تایپ‌اسکریپت لازم نیست.
  • دانش ES6 مزیت محسوب می‌شود، اما اجباری نیست.

توضیحات دوره

در این دوره یاد می‌گیرید تایپ‌اسکریپت چیست، چرا واقعا یک افزونه قدرتمند به جاوااسکریپت است، ویژگی‌های آن چه هستند و چگونه از آن استفاده کنید! یاد می‌گیرید چرا تایپ‌اسکریپت فوق‌العاده است، چگونه کد جاوااسکریپت شما را بهبود می‌بخشد و چگونه کمک می‌کند از باگ‌ها و خطاهای ناخواسته جلوگیری کنید!

این دوره شما را از مبتدی‌ترین مفاهیم و مهم‌ترین ویژگی (types!) به نقطه‌ای می‌رساند که بتوانید در هر پروژه‌ای از تایپ‌اسکریپت استفاده کنید. پروژه‌های ReactJS نیز شامل می‌شود!

با توجه به اینکه تایپ‌اسکریپت توسط مایکروسافت توسعه یافته و به شدت تبلیغ و مورد استفاده توسط Angular 2+ (گوگل) و دیگر کتابخانه‌های محبوب است، جای آن در آینده ثابت است. در حقیقت، تایپ‌اسکریپت یکی از محبوب‌ترین زبان‌های توسعه وب است که می‌توانید امروز یاد بگیرید!

امروز برتری بگیرید و جزو اولین‌ها باشید که واقعاً تایپ‌اسکریپت را درک می‌کنید!

درک کنید که چگونه می‌توانید تایپ‌اسکریپت را برای افزودن ویژگی‌های مدرن جاوااسکریپت مانند destructuring، توابع arrow یا کلاس‌ها به هر محیط و کد بیس استفاده کنید- حتی اگر این ویژگی‌ها هنوز در آن محیط پشتیبانی نمی‌شوند! فهمیدن تایپ هایی که می‌توانید استفاده کنید و تایپ هایی اختصاصی خود را بسازید. چگونه کدهای بهتر با تایپ‌ها و با بهره‌گیری از ویژگی‌های متعدد تایپ‌اسکریپت بنویسید!

اما در این دوره، بعد از مفاهیم پایه‌ای نمی‌ایستیم! در کنار آن، درباره ویژگی‌های پیشرفته‌تر (مثل دکوراتورها) و همچنین نحوه راه‌اندازی گردش کارهای با تایپ‌اسکریپت یاد می‌گیرید. این شامل یک گردش کار مخصوص تایپ‌اسکریپت و همچنین یک جریان‌کار با webpack است.

همچنین یاد می‌گیرید که محدود به پروژه‌های Angular یا جاوااسکریپت/تایپ‌اسکریپت ساده نیستید. بلکه، یک ماژول کامل درباره چگونگی استفاده از تایپ‌اسکریپت با ReactJS و بهبود کد React شما با تایپ‌اسکریپت پوشش داده شده است.

تمرین آن چیزی که می‌آموزید!

تماشای ویدیو روشی عالی برای یادگیری است و در بسیاری از موارد بهترین راه است. اگر می‌خواهید تمرین کنید، این دوره بیش از صرف تماشا است، چون شامل تمرینات (و راه حل‌هایشان) در کنار ویدیوهای آموزشی باکیفیت است.

محتوای فوق‌العاده زیاد!

به همین خاطر، در این دوره نگاهی به موارد زیر دارید:

  • Types و نحوه استفاده از آن‌ها
  • چگونگی عملکرد کامپایلر تایپ‌اسکریپت (و نحوه پیکربندی آن)
  • ویژگی‌های ES6 در تایپ‌اسکریپت
  • ویژگی‌های پیشرفته تایپ‌اسکریپت مانند "infer" و Types مپینگ، Types ثابت و موارد دیگر!

و موارد دیگر در مباحث دوره.

این دوره برای چه کسانی مناسب است؟

  • این دوره برای هر دانش‌آموزی است که می‌خواهد افق دید خود را فراتر از جاوااسکریپت معمولی گسترش دهد.
  • هر کسی که در حال یادگیری انگولار است، قطعاً باید نحوه کار تایپ‌اسکریپت را درک کند.

درک تایپ‌اسکریپت

  • خوش آمدید به دوره! 01:31
  • تایپ‌اسکریپت چیست؟ 02:54
  • چرا باید از تایپ‌اسکریپت استفاده کنید؟ 05:31
  • نصب و استفاده از تایپ‌اسکریپت 06:18
  • پیکربندی و راه‌اندازی ویرایشگر و پروژه 02:11
  • در مورد این دوره 01:40
  • چگونه بهترین بهره را از دوره ببرید؟ 03:29
  • معرفی ماژول 01:12
  • پیکربندی پروژه 02:55
  • کار با تایپ ها و بررسی انواع داخلی 04:44
  • Vanilla JavaScript هم تایپ هایی دارد! 02:53
  • Type Inference در مقابل Type Assignment 02:59
  • اختصاص تایپ ها به پارامترهای توابع 02:45
  • تایپ any 03:02
  • درک تایپ های Union 02:02
  • آرایه‌ها و تایپ ها 02:27
  • انواع پیشرفته آرایه 01:56
  • نخستین نگاه به تایپ های جنریک - روش جایگزین اعلان تایپ آرایه 01:46
  • درک تاپل‌ها 03:15
  • تایپ های شی‌ء 04:48
  • مشکل: تایپ Must Not Be Null 02:25
  • اشیاء منعطف با تایپ Record 04:55
  • کار با Enum‌ها 06:39
  • کاربرد خاص تایپ های لیترال 05:04
  • Type Aliases و تایپ های سفارشی 04:13
  • تایپ های مقدار بازگشت توابع 03:04
  • تایپ void 01:27
  • تایپ never 03:16
  • توابع به عنوان تایپ ها 08:36
  • null و undefined - تایپ های خاص 02:39
  • Inferred null و نگاهی ابتدایی به Type Narrowing 03:28
  • «Not Null» اجباری و زنجیره‌ای اختیاری 05:20
  • Type Casting 04:26
  • تایپ unknown 05:22
  • مقدارهای اختیاری و تایپ‌اسکریپت 02:41
  • Nullish Coalescing 05:36
  • معرفی ماژول 01:26
  • راه اندازی پروژه تایپ‌اسکریپت و ایجاد فایل tsconfig.json 02:46
  • بررسی تنظیمات tsconfig: هدف و کتابخانه‌ها 05:31
  • کنترل ورودی و Emission فایل 05:16
  • پیکربندی بررسی تایپ 03:15
  • تفسیر با فایل tsconfig 01:28
  • استفاده از حالت نظارتی تایپ‌اسکریپت 01:01
  • نصب بسته‌های تایپ 05:35
  • معرفی ماژول 01:24
  • شروع و قدم‌های اولیه 04:42
  • ایجاد اولین تایپ سفارشی 04:03
  • تعریف تابعی با مقدار بازگشتی تایپ Union 03:33
  • افزودن منطق برنامه 09:57
  • اتصال توابع و انتقال مقادیر 03:52
  • کامپایل و اجرا 03:33
  • معرفی ماژول 03:39
  • "let" و "const" 06:35
  • توابع Arrow 04:50
  • پارامترهای پیش‌فرض توابع 02:09
  • (...) Spread Operator 04:32
  • پارامترهای rest 05:04
  • تخریب ساختار آرایه‌ها و اشیاء 05:17
  • چگونه کد کامپایل و بسته‌بندی می‌شود؟ 01:37
  • معرفی ماژول 01:02
  • کلاس‌ها چه هستند؟ 01:23
  • ایجاد یک کلاس اولیه 06:04
  • یک میانبر مفید در تایپ‌اسکریپت و کامپایل جاوااسکریپت 05:18
  • درک public و private 05:47
  • علامت‌گذاری فیلدها به عنوان readonly 01:53
  • درک getters 03:31
  • تنظیم مقدار با setterها 05:06
  • بررسی خواص و متدهای استاتیک 02:30
  • درک وراثت 03:22
  • Modifier محافظت شده 02:33
  • درک کلاس‌های انتزاعی 04:24
  • معرفی رابط ها 01:38
  • ایجاد اولین رابط 03:57
  • رابط ها به عنوان انواع شی‌ء 01:42
  • مقایسه رابط ها و Type Aliases و درک ادغام اعلان ها 04:03
  • پیاده‌سازی رابط ها 03:10
  • ضمانت تایپ های پایه با رابط ها 01:52
  • گسترش رابط ها 01:54
  • چگونگی تبدیل نشدن رابط ها به جاوااسکریپت 01:00
  • معرفی ماژول 00:48
  • تایپ های Intersection 04:36
  • اطلاعات بیشتر درباره Type Guards 05:30
  • Discriminated Unions 04:33
  • Type Guards از طریق instanceof 02:37
  • برون‌سپاری Type Guards و استفاده از Type Predicates 03:14
  • Overloads توابع 04:39
  • کار با Overloads تابع 02:31
  • درک Index Types 05:02
  • تایپ های ثابت با as const 02:52
  • مرور مجدد تایپ Record 01:45
  • کلیدواژه satisfies 07:49
  • تایپ های پیشرفته None
  • معرفی ماژول 00:49
  • یک تایپ جنریک که قبلاً می‌دانید 01:56
  • درک تایپ های جنریک 02:01
  • ساخت و استفاده از یک تایپ جنریک 06:16
  • توابع جنریک و Inference 05:09
  • کار با چند پارامتر جنریک 02:00
  • جنریک‌ها و محدودیت‌ها 04:03
  • محدودیت‌ها و چندین جنریک 02:42
  • کار با کلاس‌ها و رابط های جنریک 02:06
  • خلاصه 01:03
  • معرفی ماژول 00:49
  • لیست پیوندی چیست؟ 01:35
  • ساخت کلاس‌های لیست و نود 04:49
  • کلاس را جنریک کنید 03:11
  • افزودن متد add 06:45
  • افزودن آیتم‌ها به صورت مؤثرتر 03:07
  • دسترسی به داده‌ها و تفسیر و اجرای کد 03:59
  • پایان لیست پیوندی 01:54
  • معرفی ماژول 00:48
  • استفاده از typeof 04:47
  • typeof و مثال مفیدتر 04:06
  • استخراج کلیدها با keyof 02:22
  • keyof و مثال مفیدتر 06:26
  • درک انواع دسترسی ایندکس شده 04:35
  • دسترسی به عناصر آرایه با انواع دسترسی ایندکس شده 03:54
  • معرفی Mapped Types 07:52
  • تایپ های Readonly و مپینگ اختیاری 07:21
  • بررسی تایپ های لیترال قالب 10:13
  • معرفی تایپ های شرطی 09:26
  • تایپ های شرطی - نمونه‌ای دیگر 06:04
  • درک کلیدواژه "infer" 07:28
  • تایپ‌اسکریپت به کمک شما؛ انواع یوتیلیتی داخلی 02:57
  • معرفی ماژول 00:50
  • دکوراتورها چیست؟ و تفاوت دکوراتورهای ECMAScript و آزمایشی 07:09
  • بررسی انواع مختلف دکوراتورها 01:17
  • ساخت اولین دکوراتور 08:09
  • ساخت دکوراتوری که کلاسی را ویرایش می‌کند 05:25
  • درک ترتیب اجرای کدهای دکوراتور 03:07
  • ساخت دکوراتور متد 04:17
  • استفاده از دکوراتورها برای حل یک مشکل رایج 04:09
  • پیاده‌سازی راه‌حل مبتنی بر دکوراتور: autobind 03:44
  • جایگزینی متدها با دکوراتورها 03:38
  • معرفی دکوراتور فیلد 04:43
  • ساخت دکوراتورهای قابل پیکربندی با فکتورها 04:01
  • پیشروی به سمت دکوراتورهای تجربی 00:39
  • معرفی ماژول 01:55
  • یک دکوراتور کلاس اول 05:21
  • کار با کارخانه‌های دکوراتور 02:02
  • ساخت دکوراتورهای کاربردی‌تر 05:59
  • اضافه کردن چندین دکوراتور 02:52
  • برخورد عمیق‌تر با دکوراتورهای پراپرتی 05:00
  • دکوراتورهای اکسسور و پارامتر 05:36
  • دکوراتورها چه زمانی اجرا می‌شوند؟ 03:11
  • بازگردانی و تغییر کلاس در دکوراتور کلاس 08:37
  • سایر انواع بازگشتی دکوراتورها 03:44
  • مثال: ساخت دکوراتور 09:04
  • اعتبارسنجی با دکوراتورها - قدم‌های اولیه 07:28
  • اعتبارسنجی با دکوراتورها - پایان یافته 12:14
  • جمع‌بندی 03:21
  • معرفی ماژول 01:32
  • شروع کار 05:20
  • انتخاب عناصر DOM و رندرینگ شی‌ء‌گرا 11:43
  • تعامل با عناصر DOM 08:03
  • ساخت و بهره‌برداری از دکوراتور Autobind 04:44
  • واکشی ورودی کاربر 09:14
  • ساخت قابلیت اعتبارسنجی قابل استفاده مجدد 14:10
  • رندرینگ لیست‌های پروژه 11:18
  • مدیریت استیت اپلیکیشن با Singletons 15:32
  • اطلاعات بیشتر درباره کلاس‌ها و تایپ های سفارشی 07:11
  • فیلتر کردن پروژه‌ها با Enum 05:59
  • افزودن وراثت و جنریک‌ها 18:40
  • رندر کردن آیتم‌های پروژه با کلاس 11:58
  • استفاده از getter 03:33
  • استفاده از رابط ها برای پیاده‌سازی درگ و دراپ کردن 10:24
  • رویدادهای درگ و انعکاس استیت جاری در رابط کاربری 05:58
  • اضافه کردن Droppable Area 08:08
  • پایان بخشیدن به درگ و دراپ کردن 06:44
  • جمع‌بندی 01:22
  • معرفی ماژول 01:24
  • نوشتن کدهای ماژول - گزینه‌های شما 02:34
  • کار با Namespaces 10:50
  • سازمان‌دهی فایل‌ها و پوشه‌ها 08:41
  • مشکل در ایمپورت های Namespace 02:52
  • استفاده از ES Modules 12:20
  • درک سینتکس‌های مختلف ایمپورت و اکسپورت 04:57
  • کد درون ماژول‌ها چه‌طور اجرا می‌شود؟ 01:43
  • درک ایمپورت های type 02:15
  • جمع‌بندی 03:14
  • معرفی ماژول 01:14
  • مشکل کامپایلر تایپ‌اسکریپت 03:35
  • ساخت با Webpack یا ESBuild 04:13
  • معرفی Vite 02:25
  • استفاده از Vite 07:20
  • نصب تایپ‌اسکریپت برای هر پروژه به صورت جدا 01:49
  • درک فایل‌های d.ts. 02:33
  • ایمپورت کردن فایل‌های غیر TS 01:56
  • جمع‌بندی 00:46
  • معرفی ماژول 01:01
  • Webpack چیست و چرا به آن نیاز داریم؟ 05:32
  • نصب Webpack و وابستگی‌های مهم 03:55
  • اضافه کردن پیکربندی ورودی و خروجی 05:57
  • اضافه کردن پشتیبانی تایپ‌اسکریپت با بسته ts-loader 07:00
  • پایان نصب و افزودن webpack-dev-server 03:33
  • اضافه کردن گردش کار تولید 04:04
  • جمع‌بندی 01:40
  • معرفی ماژول 01:09
  • مشکل: استفاده از کتابخانه‌های جاوااسکریپت (!) با تایپ‌اسکریپت 03:43
  • راه‌حل: نصب بسته‌های types@ 04:40
  • بررسی فایل‌های d.ts. 06:43
  • کتابخانه‌هایی با پشتیبانی عالی تایپ‌اسکریپت! 02:21
  • بررسی Zod به عنوان کتابخانه‌ی TypeScript-first 08:02
  • بررسی عمیق‌تر Zod 04:25
  • انواع بلادرنگ در مقابل انواع زمان کامپایل با Zod 04:16
  • معرفی ماژول 00:41
  • پیکربندی پروژه 03:56
  • دریافت ورودی کاربر 02:41
  • راه‌اندازی Google API Key 02:48
  • استفاده از Axios برای واکشی مختصات آدرس وارد شده 10:14
  • رندر کردن نقشه با Google Maps (فقط با تایپ ها!) 06:35
  • معرفی ماژول 01:22
  • راه‌اندازی پروژه React + TypeScript 04:08
  • تایپ کردن کامپوننت‌ها و Props 05:47
  • استفاده از کامپوننت‌ها و Props 02:47
  • Prop خاص children و Props اختیاری 03:01
  • اضافه کردن کامپوننت‌های دیگر همراه با props 04:03
  • توابع کامپوننت‌ها و انواع آن‌ها - جایگزین 02:30
  • مدیریت استیت 02:05
  • انتقال توابع به صورت Props 05:15
  • مدیریت ارسال فرم 04:43
  • کار با Refs 05:40
  • انتقال توابع و بروزرسانی State 04:05
  • جمع‌بندی 01:06
  • معرفی ماژول 00:55
  • Node و تایپ‌اسکریپت: گزینه‌ها و جایگزین‌ها 03:52
  • راه‌اندازی یک پروژه 07:23
  • سرور ابتدایی و کار با انواع Node 03:28
  • اضافه کردن و استفاده از Express (+ Types) 03:27
  • مدیریت داده‌ها با کمک تایپ‌اسکریپت 08:28
  • اضافه کردن و تست اولین مسیر 09:38
  • اتمام اپلیکیشن پایه 11:39
  • پشتیبانی نیتیو Node.js از تایپ‌اسکریپت بدون نیاز به کامپایل 07:28
  • Type Stripping در مقابل Type Transformation 09:01
  • بررسی محیط‌های اجرایی جایگزین مانند Bun 01:44
  • ممنون که در دوره شرکت کردید! 01:15
  • معرفی ماژول 00:26
  • استفاده از تایپ ها 10:20
  • تایپ‌های تایپ‌اسکریپت در مقابل تایپ‌های جاوااسکریپت 04:53
  • کار با اعداد، رشته‌ها و بولی‌ها 05:43
  • Type Assignment و Type Inference 05:38
  • درک تایپ‌ها None
  • تایپ‌های شی‌ء 07:32
  • تایپ‌های آرایه 05:29
  • کار با تاپل‌ها 06:19
  • کار با Enum‌ها 07:05
  • تایپ‌ any 02:04
  • تایپ‌های Union 06:30
  • تایپ‌های لیترال 07:54
  • Type Aliases / تایپ های سفارشی 02:59
  • تایپ‌ها و مفاهیم اصلی None
  • تایپ‌های بازگشتی توابع و void 07:25
  • توابع به عنوان تایپ‌ها 05:34
  • تایپ‌های توابع و callbackها 04:23
  • توابع و تایپ‌های None
  • تایپ‌ unknown 03:43
  • تایپ‌ never 04:10
  • جمع‌بندی 01:51
  • معرفی ماژول 00:46
  • استفاده از Watch Mode 02:05
  • کامپایل کل پروژه / چندین فایل 03:46
  • Include کردن و Exclude کردن فایل‌ها 06:13
  • تنظیم هدف کامپایل 04:04
  • درک کتابخانه‌های اصلی تایپ‌اسکریپت 05:31
  • پیکربندی‌ها و گزینه‌های بیشتر 01:41
  • کار با Source Maps 01:59
  • rootDir و outDir 05:31
  • توقف Emit فایل‌ها در هنگام خطای کامپایل 02:51
  • کامپایلر سخت‌گیرانه 11:04
  • گزینه‌های کیفیت کد 04:22
  • اشکال زدایی با ویژوال استودیو کد 04:20
  • جمع‌بندی 01:08
  • معرفی ماژول 00:54
  • کلاس‌ها چه هستند؟ 04:48
  • ایجاد یک کلاس اولیه 05:52
  • کامپایل جاوااسکریپت 03:02
  • توابع Constructor و کلیدواژه this 07:34
  • Access Modifier های public و private 05:52
  • مقداردهی اولیه Shorthand 02:57
  • ویژگی های readonly 02:45
  • مبانی کلاس‌ها None
  • وراثت 08:07
  • Overriding Properties و protected Modifier 02:43
  • getterها و setterها 06:42
  • متدها و خواص استاتیک 05:08
  • کلاس‌های انتزاعی 05:25
  • Singletons و Private Constructors 05:07
  • کلاس‌ها - جمع‌بندی 01:43
  • کلاس‌ها None
  • یک رابط اول 04:26
  • استفاده از رابط ها با کلاس‌ها 06:10
  • چرا رابط ها؟ 01:34
  • ویژگی های رابط ها Readonly 01:35
  • گسترش رابط ها 02:34
  • رابط ها به عنوان انواع تابع 02:41
  • پارامترهای اختیاری و ویژگی ها 04:11
  • تفسیر رابط ها به جاوااسکریپت 01:58
  • رابط ها None
  • جمع‌بندی 01:54
  • معرفی ماژول 01:04
  • جنریک‌های داخلی و مفهوم جنریک‌ها 08:44
  • ساخت تابع جنریک 08:33
  • کار با محدودیت‌ها 03:39
  • یک تابع جنریک دیگر 05:35
  • محدودیت 03:06
  • کلاس‌های جنریک 08:54
  • خلاصه اولیه 01:22
  • تایپ های وتیلیت جنریک 07:19
  • تایپ های جنریک در مقابل تایپ های Union 03:41
  • جنریک‌ها None

8,900,500 1,780,100 تومان

مشخصات آموزش

درک تایپ‌اسکریپت

  • تاریخ به روز رسانی: 1404/06/21
  • سطح دوره:همه سطوح
  • تعداد درس:310
  • مدت زمان :22:32:58
  • حجم :7.89GB
  • زبان:دوبله زبان فارسی
  • دوره آموزشی:AI Academy

آموزش های مرتبط

The Great Courses
2,495,000 499,000 تومان
  • زمان: 06:19:16
  • تعداد درس: 40
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
6,787,000 1,357,400 تومان
  • زمان: 17:11:52
  • تعداد درس: 113
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
8,360,500 1,672,100 تومان
  • زمان: 21:10:47
  • تعداد درس: 202
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
5,720,500 1,144,100 تومان
  • زمان: 14:29:26
  • تعداد درس: 36
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
4,206,500 841,300 تومان
  • زمان: 10:39:08
  • تعداد درس: 64
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
4,391,000 878,200 تومان
  • زمان: 11:07:45
  • تعداد درس: 63
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
7,261,000 1,452,200 تومان
  • زمان: 18:23:18
  • تعداد درس: 103
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
490,000 98,000 تومان
  • زمان: 00:57:00
  • تعداد درس: 20
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
490,000 98,000 تومان
  • زمان: 00:41:00
  • تعداد درس: 9
  • سطح دوره:
  • زبان: دوبله فارسی

آیا سوالی دارید؟

ما به شما کمک خواهیم کرد تا شغل و رشد خود را افزایش دهید.
امروز با ما تماس بگیرید