فهرست مندرجات[پنهان شدن][نمایش]
- 1. TypeScript دقیقا چیست و چه تفاوتی با جاوا اسکریپت دارد؟
- 2. برخی از ویژگی های قابل توجه TypeScript چیست؟
- 3. برخی از مزایای استفاده از TypeScript چیست؟
- 4. برخی از اشکالات استفاده از TypeScript چیست؟
- 5. اجزای TypeScript دقیقا چیست؟
- 6. آیا می توانید رابط ها را در TypeScript توضیح دهید؟
- 7. متغیرها در TypeScript چیست و چگونه به روش های مختلف اعلام می شوند؟
- 8. چگونه می توان از زیرمجموعه یک رابط برای تولید یک نوع جدید استفاده کرد؟
- 9. منظور شما از "هر نوع" چیست و چه زمانی باید از آنها استفاده کنم؟
- 10. TypeScript چگونه زبانی با نحو تایپ استاتیک اختیاری است؟
- 11. در TypeScript ماژول ها به چه معناست؟
- 12. "enums" در TypeScript چگونه عمل می کند؟
- 13. چه چیزی ماژول داخلی را از ماژول خارجی متمایز می کند؟
- 14. تابع ناشناس TypeScript به چه معناست؟
- 15. در TypeScript فضای نام چیست و چگونه آن را اعلام می کنید؟
- 16. TypeScript از چه اصلاح کننده های دسترسی پشتیبانی می کند؟
- 17. آیا TypeScript اجازه بارگذاری بیش از حد تابع را می دهد؟
- 18. TypeScript چگونه به آرگومان های اختیاری در توابع اجازه می دهد؟
- 19. var، let و const چگونه از یکدیگر متفاوت هستند؟
- 20. در TypeScript دکوراتورها را توضیح دهید؟
- 21. در TypeScript، Mixins به چه معناست؟
- 22. نام مستعار نوع دقیقاً در TypeScript چیست؟
- 23. اصطلاح "متغیر دامنه" به چه معناست؟
- 24. noImplicitAny دقیقا برای چه چیزی استفاده می شود؟
- 25. انواع اتحاد و تقاطع چگونه از یکدیگر متفاوت هستند؟
- 26. چگونه کلمه کلیدی TypeScript Declare را تعریف می کنید؟
- 27. در TypeScript ژنریک چیست؟
- 28. JSX در TypeScript به چه معناست؟
- 29. محیط TypeScript چیست و چه زمانی باید از آنها استفاده کنم؟
- 30. منظور از کلاس انتزاعی در TypeScript چیست؟
- 31. فایل نقشه TypeScript دقیقا چیست؟
- 32. در TypeScript، اظهارات نوع چیست؟
- نتیجه
مایکروسافت زبان برنامه نویسی TypeScript را توسعه داده و همچنان از آن پشتیبانی می کند. با افزودن تایپ ایستا به عنوان یک گزینه، این یک ابر مجموعه نحوی از جاوا اسکریپت است.
زبان توسعه برنامه در مقیاس بزرگ TypeScript جاوا اسکریپت را کامپایل می کند. از آنجایی که تایپ اسکریپت ابرمجموعه ای از جاوا اسکریپت است، برنامه های نوشته شده با جاوا اسکریپت در تایپ اسکریپت نیز معتبر هستند.
در اینجا یک لیست جامع از معمولی ترین سوالات مصاحبه توسعه دهندگان TypeScript و پاسخ ها در صورتی که در آن شرکت می کنید آورده شده است.
1. TypeScript دقیقا چیست و چه تفاوتی با جاوا اسکریپت دارد؟
ابر مجموعه ای از جاوا اسکریپت، TypeScript به جاوا اسکریپت استاندارد کامپایل می شود. از نقطه نظر مفهومی، TypeScript و JavaScript مشابه SASS و CSS هستند.
به عبارت دیگر، TypeScript جاوا اسکریپت ES6 با چند قابلیت بیشتر است. جاوا اسکریپت یک زبان برنامه نویسی بیشتر شبیه پایتون است، در حالی که TypeScript یک زبان شی گرا و تایپ ایستا قابل مقایسه با جاوا و سی شارپ است.
کلاس ها و رابط ها همگی بخشی از طراحی شی گرا TypeScript هستند و استنتاج نوع یکی از ابزارهای متعددی است که به لطف تایپ استاتیک آن در دسترس است.
جاوا اسکریپت در فایلی با پسوند js نوشته می شود در حالی که TypeScript در فایلی با پسوند ts نوشته می شود.
برخلاف جاوا اسکریپت، کد تایپ اسکریپت نمی تواند مستقیماً در یک مرورگر یا هر پلتفرم دیگری اجرا شود و توسط مرورگرها قابل درک نیست. سپس پلتفرم هدف جاوا اسکریپت ساده ای را که از فایل های .ts با استفاده از ترانسپایلر TypeScript تولید شده است را اجرا می کند.
2. برخی از ویژگی های قابل توجه TypeScript چیست؟
- تایپ استاتیک یکی از ویژگی های TypeScript است که به بررسی تایپ در حین کامپایل کمک می کند. بنابراین، حتی بدون اجرای اسکریپت، می توانید هنگام نوشتن کد، اشتباهات را در کد تشخیص دهید.
- DOM را می توان با استفاده از TypeScript برای افزودن یا حذف موارد تغییر داد.
- هر سیستم عاملی، از جمله ویندوز، macOS و لینوکس، می تواند کامپایلر TypeScript را نصب کند.
- کلاس ها، رابط ها و ماژول ها برخی از قابلیت های ارائه شده توسط TypeScript هستند. بنابراین می تواند کد شی گرا برای توسعه سمت کلاینت و سمت سرور ایجاد کند.
- اکثر ویژگی های ECMAScript 2015 (ES 6, 7) قبلاً در TypeScript گنجانده شده است، از جمله کلاس، رابط، توابع Arrow و غیره.
- اگر از تایپ پویا جاوا اسکریپت استفاده می کنید، TypeScript از تایپ استاتیک اختیاری نیز پشتیبانی می کند.
3. برخی از مزایای استفاده از TypeScript چیست؟
- هر موتور جاوا اسکریپت یا مرورگر می تواند TypeScript را اجرا کند زیرا سریع، آسان برای یادگیری است و به سرعت اجرا می شود.
- این سینتکس و معنایی مشابه جاوا اسکریپت دارد.
- این امر نوشتن سریعتر کدهای فرانت اند توسط توسعه دهندگان باطن را تسهیل می کند.
- دارای قابلیت های ES6 و ES7 است که می تواند عملکرد در جاوا اسکریپت موتورهای ES5 مانند Node.js.
- کتابخانه های جاوا اسکریپت موجود مانند Jquery، D3.js و غیره از طریق فایل Definition که دارای پسوند.d.ts است پشتیبانی می شوند.
- یک اسکریپت جاوا اسکریپت که از قبل وجود دارد می تواند کد TypeScript را فراخوانی کند. همچنین به طور یکپارچه با چارچوب ها و کتابخانه های جاوا اسکریپت فعلی یکپارچه می شود.
4. برخی از اشکالات استفاده از TypeScript چیست؟
- کدنویسی با TypeScript به یک فرآیند کامپایل طولانی نیاز دارد.
- از کلاس هایی که انتزاعی هستند پشتیبانی نمی کند.
- کیفیت فایل های تعریف نوع یک مشکل است.
- هر کتابخانه شخص ثالث برای استفاده باید دارای یک فایل تعریف باشد.
- اگر بخواهیم برنامه TypeScript را در مرورگر اجرا کنیم، برای تبدیل TypeScript به JavaScript یک مرحله کامپایل ضروری است.
- جاوا اسکریپت سالهاست که توسط توسعه دهندگان وب استفاده می شود و TypeScript چیز جدیدی ارائه نمی دهد.
5. اجزای TypeScript دقیقا چیست؟
در TypeScript، سه دسته اصلی از مؤلفه ها وجود دارد که عبارتند از:
- زبان: شامل حاشیه نویسی برای نوع، کلمات کلیدی و نحو است.
- کامپایلر TypeScript: دستورالعمل های TypeScript توسط این کامپایلر (tsc) به جاوا اسکریپت ترجمه می شوند.
- سرویس زبان TypeScript: سرویس زبان برنامه های ویرایشگر مانند را به عنوان لایه دوم در بالای فرآیند اولیه کامپایلر ارائه می دهد. مجموعه استاندارد عملیات ویرایش رایج توسط سرویس زبان پشتیبانی می شود.
6. آیا می توانید رابط ها را در TypeScript توضیح دهید؟
TypeScript از رابط ها برای تعیین نحو موجودیت ها استفاده می کند. به عبارت دیگر، فرم های داده مانند اشیا یا آرایه ای از آیتم ها را می توان با استفاده از رابط ها توصیف کرد. کلمه کلیدی رابط، نام رابط و تعریف آن برای اعلام رابط ها استفاده می شود. بیایید رابط اصلی یک شی کاربر را بررسی کنیم.
سپس می توان نوع یک متغیر را با استفاده از رابط تنظیم کرد (مشابه نحوه اختصاص دادن انواع اولیه به یک متغیر). سپس ویژگی های رابط توسط متغیری از نوع User برآورده می شود.
پروژه TypeScript شما از رابط ها سود می برد زیرا آنها یکنواختی را ارائه می دهند. علاوه بر این، اینترفیسها ابزارهای پروژه شما را با افزایش قابلیتهای تکمیل خودکار IDE و تضمین ارائه مقادیر مناسب به سازندهها و روشها افزایش میدهند.
7. متغیرها در TypeScript چیست و چگونه به روش های مختلف اعلام می شوند؟
متغیر یک ناحیه مشخص از حافظه است که برای نگهداری مقادیر استفاده می شود. یک دونقطه (:) بعد از نام متغیر قرار می گیرد و در هنگام اعلان متغیر در TypeScript، نوع بعد از آن قرار می گیرد. مانند جاوا اسکریپت، متغیرها را با کلمه کلیدی var اعلام می کنیم.
هنگام اعلام یک متغیر در Typescript، دستورالعمل های خاصی باید رعایت شود:
- نام نمی تواند با یک عدد شروع شود.
- نام متغیر باید دارای حروف یا اعداد باشد.
- نماد دلار ($) و زیرخط (_) تنها کاراکترهای ویژه ای هستند که در این قسمت مجاز هستند.
8. چگونه می توان از زیرمجموعه یک رابط برای تولید یک نوع جدید استفاده کرد؟
با ارائه یک نوع یا رابط موجود و انتخاب کلیدهایی که باید از نوع جدید حذف شوند، می توانید با استفاده از نوع ابزار omit یک نوع جدید در TypeScript ایجاد کنید.
مثال زیر نشان می دهد که چگونه می توان یک نوع جدید به نام UserPreview ساخت که بر اساس رابط کاربری است اما ویژگی ایمیل را حذف می کند.
9. منظور شما از "هر نوع" چیست و چه زمانی باید از آنها استفاده کنم؟
گاهی اوقات لازم است مقداری را در یک متغیر ذخیره کنید، اما از قبل از نوع متغیر مطمئن نیستید. به عنوان مثال، این مقدار می تواند از ورودی کاربر یا یک درخواست API نشات بگیرد. با استفاده از نوع "any" می توانید هر نوع مقداری را به یک نوع متغیر بدهید.
زمانی که نوع متغیر به طور صریح مشخص نشده باشد و کامپایلر قادر به تعیین آن از روی زمینه نباشد، TypeScript معتقد است که متغیر از نوع هر است.
10. TypeScript چگونه زبانی با نحو تایپ استاتیک اختیاری است؟
می توان به کامپایلر دستور داد تا نوع متغیر را در TypeScript نادیده بگیرد زیرا به صورت اختیاری به صورت ایستا تایپ می شود. از هر نوع داده ای می توان برای اختصاص هر نوع مقداری به متغیر استفاده کرد. هنگام کامپایل، TypeScript هیچ گونه بررسی خطایی را ارائه نمی دهد.
11. در TypeScript ماژول ها به چه معناست؟
گروه بندی متغیرهای مرتبط، توابع، کلاس ها، رابط ها و غیره با استفاده از ماژول ها موثر است. می توان از آن استفاده کرد، اما نه در حوزه جهانی، فقط در محدوده خودش.
در اصل، متغیرها، توابع، کلاسها و رابطهای تعریفشده یک ماژول را نمیتوان مستقیماً از خارج از ماژول مشاهده کرد.
از کلمه کلیدی صادرات می توان برای ساخت یک ماژول استفاده کرد، در حالی که کلمه کلیدی import را می توان برای گنجاندن یک ماژول در ماژول دیگر استفاده کرد.
12. "enums" در TypeScript چگونه عمل می کند؟
یک روش برای تعریف مجموعهای از ثابتهای نامگذاری شده، استفاده از enums یا انواع شمارششده است. این ساختارهای داده دارای طول ثابت و مجموعه ای از مقادیر ثابت هستند.
هنگام نمایش مجموعه ای از گزینه ها برای یک مقدار معین در TypeScript، enums اغلب برای توصیف احتمالات با استفاده از مجموعه ای از جفت های کلید/مقدار استفاده می شود.
بیایید یک تصویر از enum را ببینیم که برای ارائه انواع مختلف کاربر استفاده می شود.
Enum ها پس از کامپایل توسط TypeScript به صورت داخلی به اشیاء جاوا اسکریپت معمولی تبدیل می شوند. بنابراین استفاده از enums به استفاده از چندین متغیر const مجزا ارجحیت دارد.
کد شما از نظر نوع ایمن است و به دلیل گروه بندی که enums ارائه می دهد، درک آن آسان تر است.
13. چه چیزی ماژول داخلی را از ماژول خارجی متمایز می کند؟
ماژول داخلی:
- ماژول های داخلی یکی از ویژگی های تکرار قبلی Typescript بودند.
- نام و بدنه ماژول های داخلی با استفاده از ModuleDeclarations تعریف می شود.
- اینها اعضای ماژول های دیگری هستند که محلی یا صادر شده اند.
- کلاس ها، رابط ها، توابع و متغیرها با هم در ماژول های داخلی گروه بندی می شوند که می توانند به ماژول دیگری صادر شوند.
ماژول خارجی:
- در جدیدترین نسخه، ماژول های خارجی به عنوان ماژول شناخته می شوند.
- یک فایل منبع جداگانه که به عنوان ماژول خارجی شناخته می شود برای ایجاد آنها استفاده می شود و هر کدام حداقل یک اظهارنامه واردات یا صادرات دارند.
- در جدیدترین نسخه، ماژول های خارجی به عنوان ماژول شناخته می شوند.
- عبارات داخلی تعاریف ماژول را می توان با استفاده از ماژول های خارجی پنهان کرد و فقط متدها و آرگومان های متصل به متغیر تعریف شده قابل مشاهده باقی ماند.
14. تابع ناشناس TypeScript به چه معناست؟
توابع طبقه بندی شده به عنوان ناشناس فاقد نام تابع به عنوان شناسه هستند. این روال ها به صورت پویا در طول زمان اجرا تعریف می شوند. مانند توابع معمولی، توابع ناشناس میتوانند ورودیها را دریافت کرده و نتایج را تولید کنند.
یک تابع ناشناس معمولاً پس از ایجاد غیرقابل دسترسی است. متغیرها را می توان به یک تابع ناشناس اختصاص داد.
15. در TypeScript فضای نام چیست و چگونه آن را اعلام می کنید؟
فضای نام به طور منطقی عملکردها را گروه بندی می کند. اینها به صورت داخلی کدهای قدیمی تایپ اسکریپت را حفظ می کنند. این ویژگی ها و چیزهایی را با ارتباطات خاص در بر می گیرد.
نام دیگر فضای نام یک ماژول داخلی است. رابط ها، کلاس ها، توابع و متغیرها همگی می توانند در یک فضای نام گنجانده شوند تا مجموعه ای از عملکردهای متصل را ارائه دهند.
16. TypeScript از چه اصلاح کننده های دسترسی پشتیبانی می کند؟
در زیر نمونههایی از نحوه استفاده از اصلاحکنندههای دسترسی عمومی، خصوصی و محافظتشده در TypeScript برای کنترل دسترسی اعضای کلاس آمده است:
- عمومی - دسترسی برای همه اعضای کلاس، همه کلاسهای نسل آن و هر نمونه از کلاس در دسترس است.
- محافظت شده - آنها برای همه اعضای کلاس و همه زیر کلاس های آن قابل دسترسی هستند. با این حال، یک نمونه کلاس نمی تواند دسترسی داشته باشد.
- دسترسی خصوصی به آنها فقط برای اعضای کلاس محدود شده است.
از آنجایی که جاوا اسکریپت مفید است، اگر یک اصلاح کننده دسترسی داده نشود، عمومی فرض می شود.
17. آیا TypeScript اجازه بارگذاری بیش از حد تابع را می دهد؟
بله، بارگذاری بیش از حد تابع توسط TypeScript پشتیبانی می شود. اما اکنون انجام آن عجیب است. بنابراین، هنگام بارگذاری بیش از حد با TypeScript، فقط یک پیاده سازی با انواع امضا وجود دارد.
در حالی که امضای دوم حاوی پارامتری از متن نوع است، امضای اول فقط یک پارامتر از نوع شماره دارد. تابع سوم، که شامل یک آرگومان از نوع any است، شامل اجرای واقعی است.
سپس پیاده سازی نوع پارامتر ارائه شده را تعیین می کند و بخش جداگانه ای از کد را مطابق با آن تعیین اجرا می کند.
18. TypeScript چگونه به آرگومان های اختیاری در توابع اجازه می دهد؟
برخلاف جاوا اسکریپت، اگر بخواهید یک تابع را بدون تعیین مقدار دقیق و انواع پارامترها همانطور که در امضای تابع آن ذکر شده است فراخوانی کنید، کامپایلر TypeScript با خطا مواجه می شود.
می توانید با استفاده از علامت علامت سوال ('?') از پارامترهای اختیاری برای حل این مشکل استفاده کنید. این نشان می دهد که پارامترهای اختیاری را می توان با افزودن یک "؟" نشان داد. به آنهایی که ممکن است ارزشی دریافت کنند یا نکنند.
19. var، let و const چگونه از یکدیگر متفاوت هستند؟
سه روش مختلف برای اعلام یک متغیر توسط TypeScript ارائه شده است که هر کدام یک برنامه پیشنهادی دارد.
VAR: یک متغیر سراسری یا با محدوده تابع را با دستورالعمل های رفتار و محدوده متغیرهای متغیر جاوا اسکریپت اعلام می کند. متغیرها هنگام اعلان نیازی به تنظیم مقادیر آنها ندارند.
اجازه دهید: یک متغیر بلوک با محدوده محلی را اعلام می کند. اجازه دهید متغیرها هنگام اعلان نیازی به تنظیم مقدار متغیر نداشته باشند. اصطلاح "متغیر محلی با دامنه بلوکی" به متغیری اشاره دارد که فقط از داخل بلوکی که در آن قرار دارد قابل دسترسی است، مانند یک تابع، یک بلوک if/else یا یک حلقه. اجازه دهید متغیرها را نمی توان قبل از اعلان آنها خواند یا نوشت، برخلاف var.
طراح: مقداری را برای یک ثابت با محدوده بلاک اعلام می کند که پس از مقداردهی اولیه نمی توان آن را تغییر داد. متغیرهای Const باید قبل از اعلان مقداردهی اولیه شوند. برای متغیرهایی که در تمام مدت وجود خود ثابت می مانند، این بهینه است.
20. در TypeScript دکوراتورها را توضیح دهید؟
یک Accessor، ویژگی، پارامتر، کلاس، تابع یا decorator همگی می توانند به روشی خاص به عنوان decorator اعلام شوند. Decorators توابعی با پیشوند @expression هستند که در زمان اجرا با جزئیات مربوط به اعلان تزئین شده فراخوانی می شوند.
عبارت باید یک عملکرد را ارزیابی کند تا دکوراتورها کار کنند.
دکوراتورهای TypeScript هدف اضافه کردن توضیحات و اطلاعات به کد فعلی را ارائه می کنند.
در فایل tsconfig.json ما یا در خط فرمان، باید گزینه کامپایلر ExperimentalDecorators را فعال کنید تا پشتیبانی آزمایشی برای دکوراتورها فعال شود:
21. در TypeScript، Mixins به چه معناست؟
Mixin ها تکنیکی برای ایجاد کلاس ها از قطعات قابل استفاده مجدد در جاوا اسکریپت و ترکیب کلاس های جزئی برای ایجاد کلاس های کامل پیچیده تر هستند.
مفهوم ساده است: تابع B کلاس A را می پذیرد و یک کلاس جدید را با عملکرد آن اضافه می کند، برخلاف کلاس A که کلاس B را برای به دست آوردن عملکرد آن گسترش می دهد. تابع B در این مورد یک mixin است.
22. نام مستعار نوع دقیقاً در TypeScript چیست؟
نام مستعار نوع، نام یک نوع را تغییر می دهد. نام مستعار نوع، مانند واسطها، میتواند برای نامگذاری اولیهها، اتحادیهها، تاپلها و هر نوع دیگری که در غیر این صورت باید با دست تعریف شود، استفاده میشود.
نام مستعار نوع جدیدی ایجاد نمی کند. بلکه نام یک نوع موجود را تغییر می دهد. نام مستعار یک بدوی واقعاً عملی نیست، اگرچه می تواند برای مستندسازی مفید باشد.
نام مستعار نوع، مانند رابط ها، می تواند جهانی باشد. تنها کاری که باید انجام دهید این است که پارامترهای نوع را اضافه کنید و از آنها در سمت راست اعلان نام مستعار استفاده کنید.
23. اصطلاح "متغیر دامنه" به چه معناست؟
جاوا اسکریپت از متغیرهای دامنه محلی و جهانی پشتیبانی می کند. دامنه مجموعه ای از اشیا، متغیرها و توابع است.
مثالی از اعلان یک متغیر در دو حوزه به صورت زیر است:
- متغیر با دامنه محلی - به عنوان یک شی تابع برای استفاده در توابع عمل می کند.
- متغیر با دامنه جهانی - این شی پنجره را می توان هم در داخل و هم در خارج از توابع استفاده کرد
24. noImplicitAny دقیقا برای چه چیزی استفاده می شود؟
برخورد کامپایلر TypeScript با انواع ضمنی پروژه شما توسط ویژگی noImplicitAny در فایل پیکربندی tsconfig.json برای پروژه های TypeScript تغییر می کند.
پرچم noImplicitAny را می توان روی true یا false تنظیم کرد و همیشه پس از مقداردهی اولیه قابل تغییر است. با توجه به اینکه هر پروژه منحصر به فرد است، هیچ پاسخ درست یا غلطی در مورد اینکه این عدد چقدر باید باشد وجود ندارد.
درک تمایز بین وضعیتهای روشن و خاموش پرچم میتواند به شما در انتخاب تنظیماتی که برای پرچم استفاده کنید کمک کند.
اگر پرچم noImplicitAny روی false (پیشفرض) تنظیم شده باشد، کامپایلر نوع متغیر را بر اساس نحوه استفاده از آن تعیین نمیکند. در عوض نوع به صورت پیش فرض توسط کامپایلر روی any تنظیم شده است.
با این حال، اگر گزینه noImplicitAny روی true تنظیم شود، کامپایلر تلاش میکند تا نوع را استنباط کند و اگر نتواند این کار را انجام دهد، خطای زمان کامپایل ایجاد میکند.
25. انواع اتحاد و تقاطع چگونه از یکدیگر متفاوت هستند؟
به جای ایجاد انواع جدید از ابتدا، انواع اتحادیه ها و تقاطع ها به شما امکان می دهند انواع موجود را ترکیب و ترکیب کنید. هر دو اتصال و تقاطع دارای ویژگی های متمایزی هستند که آنها را برای موارد استفاده خاص عالی می کند.
نوعی که می تواند یکی از چندین نوع باشد، نوع اتحادیه نامیده می شود. لیست انواعی که در نوع جدید استفاده می شود با استفاده از | تقسیم می شود نماد (نوار عمودی) در انواع اتحادیه.
بیایید به یک تصویر نگاه کنیم:
از سوی دیگر، تقاطع به عنوان نوعی تعریف می شود که بسیاری از انواع را در یک نوع ادغام می کند و همه ویژگی های هر نوع را برای تشکیل یک نوع جدید یکپارچه می کند. فهرست انواعی که ادغام خواهند شد با استفاده از نماد & به تقاطع ها تقسیم می شوند.
بیایید یک تصویر را بررسی کنیم:
26. چگونه کلمه کلیدی TypeScript Declare را تعریف می کنید؟
هیچ فایل اعلان TypeScript در کتابخانه ها یا چارچوب های جاوا اسکریپت وجود ندارد. با این حال، شما باید از کلمه کلیدی declare استفاده کنید تا از آنها در فایل TypeScript بدون مواجه شدن با هیچ گونه خطای کامپایل استفاده کنید.
وقتی میخواهید متغیری را مشخص کنید که قبلاً میتواند در جای دیگری وجود داشته باشد، از کلمه کلیدی declare در اعلانها و روشهای محیطی استفاده میکنید.
27. در TypeScript ژنریک چیست؟
ابزاری به نام TypeScript Generics روشی را برای تولید قطعات قابل استفاده مجدد ارائه می دهد. به جای کار با تنها یک شکل از داده ها، می تواند اجزایی ایجاد کند که می توانند با طیف وسیعی از انواع داده ها کار کنند.
علاوه بر این، ایمنی نوع را بدون به خطر انداختن کارایی یا بهره وری ارائه می دهد. ما میتوانیم کلاسهای عمومی، توابع عمومی، روشهای عمومی و رابطهای عمومی را به لطف ژنریک بسازیم.
ژنریک ها مجموعه هایی با تایپ بالا هستند زیرا یک پارامتر نوع در بین براکت های باز () و بسته (>) نوشته می شود. این از یک نوع منحصر به فرد از متغیر نوع به نام T استفاده می کند که مخفف انواع است.
28. JSX در TypeScript به چه معناست؟
JSX یک جاوا اسکریپت قانونی است که می توان آن را از یک نحو جاسازی شده شبیه به XML تبدیل کرد. همراه با چارچوب React، JSX محبوبیت پیدا کرد.
کامپایل مستقیم، تأیید نوع و جاسازی JSX در جاوا اسکریپت توسط TypeScript پشتیبانی می شود. اگر می خواهید از آن استفاده کنید، باید پسوند a.tsx را به فایل خود بدهید و گزینه JSX را فعال کنید.
29. محیط TypeScript چیست و چه زمانی باید از آنها استفاده کنم؟
کامپایلر از طریق اعلانهای محیطی از کد منبع واقعی که در جای دیگری قرار دارد مطلع میشود.
اگر بخواهیم از این کدهای منبع در زمان اجرا استفاده کنیم اما وجود نداشته باشند، بدون هیچ اطلاع قبلی خراب می شود. فایلهای سند مانند فایلهای اعلانهای محیطی هستند.
اگر منبع تغییر کند، مستندات باید به روز شوند و اگر فایل اعلان محیط تغییر نکند، مشکلات کامپایلر ایجاد می شود.
علاوه بر این، ما را قادر می سازد از کتابخانه های معروف جاوا اسکریپت که قبلاً به طور گسترده استفاده می شوند، مانند jQuery، AngularJS، NodeJS و غیره استفاده کنیم.
30. منظور از کلاس انتزاعی در TypeScript چیست؟
کلاس های انتزاعی قرارداد یک شی را بدون اجازه دادن به نمونه سازی مستقیم شی تعریف می کنند. با این حال، یک کلاس انتزاعی نیز می تواند اطلاعات پیاده سازی اعضای خود را ارائه دهد.
یک یا چند عضو انتزاعی را می توان در یک کلاس انتزاعی یافت. سپس اعضای انتزاعی سوپرکلاس باید پیاده سازی ارائه شده توسط هر کلاسی که کلاس انتزاعی را گسترش می دهد داشته باشند.
بیایید نگاهی به یک مثال TypeScript از یک کلاس انتزاعی بیندازیم و چگونه یک کلاس دیگر ممکن است آن را گسترش دهد. اگرچه هر دو کلاس Car و Bike در مثال زیر کلاس Vehicle را گسترش می دهند، اما هر کدام تابع drive() را به روشی منحصر به فرد پیاده سازی می کنند.
31. فایل نقشه TypeScript دقیقا چیست؟
یک فایل نقشه منبع به نام فایل نقشه TypeScript حاوی داده هایی در مورد فایل های اصلی ما است. فایلهای نقشه منبع، یا فایلهای .map، به ابزارها اجازه میدهند بین کد جاوا اسکریپت که خروجی است و فایلهای منبع TypeScript که آن را تولید کردهاند، نقشهبرداری کنند.
علاوه بر این، این فایلها میتوانند توسط دیباگرها مصرف شوند و به ما این امکان را میدهند که فایل TypeScript را به جای فایل جاوا اسکریپت اشکال زدایی کنیم.
32. در TypeScript، اظهارات نوع چیست؟
در حالی که تایپ تایپ عملکردی مشابه با تایپ کست در زبان های دیگر مانند C# و جاوا دارد، تایید نوع یا بازآرایی داده ها را انجام نمی دهد.
در حالی که نوع ادعا تاثیری بر زمان اجرا ندارد، نوع ریخته گری این پشتیبانی را ارائه می دهد. از سوی دیگر، اظهارات نوع فقط توسط کامپایلر استفاده می شود و راهنمایی هایی را در مورد اینکه ما می خواهیم کد ما چگونه مورد بررسی قرار گیرد، ارائه می دهد.
نتیجه
در پایان، امیدواریم این سوالات مصاحبه TypeScript برای شما مفید باشد، چه برنامهنویسی باشید که برای مصاحبه شغلی آماده میشوید و چه مدیر استخدامی که تلاش میکند بهترین متقاضی را پیدا کند.
به یاد داشته باشید که فرآیند استخدام شامل چیزی بیش از تخصص فنی نیست. برای اطمینان از یافتن (یا یافتن متقاضی مناسب برای) شغل، تجربیات گذشته و مهارت های نرم به همان اندازه حیاتی هستند.
بسیاری از سوالات مصاحبه TypeScript باز هستند و یک پاسخ درست ندارند، بنابراین این را در نظر داشته باشید.
مصاحبه کنندگان به دلیل پاسخ های شما علاقه مند هستند.
همیشه برای سؤالات بعدی آماده باشید که توضیح دهید چگونه به پاسخ خود رسیده اید. روند فکر خود را شرح دهید.
پاسخ دهید