Содржина[Крие][Прикажи]
- 1. Што точно е TypeScript, и како се разликува од JavaScript?
- 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 Keyword?
- 27. Во TypeScript, што се генерики?
- 28. Што значи JSX во TypeScript?
- 29. Што се TypeScript Ambients и кога треба да ги користам?
- 30. Што подразбираш под апстрактна класа во TypeScript?
- 31. Што точно е датотека TypeScript Map?
- 32. Во TypeScript, што се тврдењата на типот?
- Заклучок
Мајкрософт го разви и продолжува да го поддржува програмскиот јазик TypeScript. Со додавање на статичко пишување како опција, тоа е синтаксичко супермножество на JavaScript.
Јазик за развој на апликации од големи размери TypeScript го компајлира JavaScript. Бидејќи TypeScript е супермножество на JavaScript, програмите напишани во JavaScript важат и во TypeScript.
Еве сеопфатна листа на најтипичните прашања и одговори за интервју со развивачите на TypeScript во случај да присуствувате на едно.
1. Што точно е TypeScript, и како се разликува од JavaScript?
Суперзбир на JavaScript, TypeScript се компајлира на стандарден JavaScript. Од концептуална гледна точка, TypeScript и JavaScript се слични на SASS и CSS.
Со други зборови, TypeScript е ES6 JavaScript со уште неколку можности. JavaScript е јазик за скриптирање повеќе сличен на Python, додека TypeScript е објектно-ориентиран, статички типизиран јазик споредлив со Java и C#.
Класите и интерфејсите се дел од објектно-ориентираниот дизајн на TypeScript, а заклучувањето на типот е една од многуте достапни алатки благодарение на неговото статичко пишување.
JavaScript се пишува во датотека со наставка .js, додека TypeScript е запишан во датотека со наставка .ts.
Спротивно на JavaScript, кодот TypeScript не може директно да се извршува во прелистувач или на која било друга платформа и не е разбран од прелистувачите. Целната платформа потоа ќе го изврши обичниот JavaScript што е генериран од .ts-датотеките со помош на транспилерот на TypeScript.
2. Кои се некои забележителни карактеристики на TypeScript?
- Статичното пишување е карактеристика на TypeScript што помага да се провери типот за време на компилацијата. Така, дури и без извршување на скриптата, можете да откриете грешки во кодот додека го пишувате.
- DOM-от може да се менува со помош на TypeScript за додавање или отстранување ставки.
- Секој оперативен систем, вклучувајќи ги Windows, macOS и Linux, може да има инсталиран компајлер TypeScript.
- Класите, интерфејсите и модулите се некои од функционалностите што ги нуди TypeScript. Така може да создаде објектно-ориентиран код за развој и од страна на клиентот и од страна на серверот.
- Поголемиот дел од карактеристиките на ECMAScript 2015 (ES 6, 7) се веќе вклучени во TypeScript, вклучувајќи класа, интерфејс, функции со стрелки итн.
- Ако користите динамичко пишување на JavaScript, TypeScript поддржува и опционално статичко пишување.
3. Кои се некои придобивки од користењето на TypeScript?
- Секој JavaScript мотор или прелистувач може да изврши TypeScript бидејќи е брз, лесен за учење и брзо работи.
- Ја дели истата синтакса и семантика како JavaScript.
- Ова го олеснува побрзото пишување на предниот код од страна на развивачите на заднината.
- Вградува ES6 и ES7 способности кои можат функција во JavaScript ES5 мотори како Node.js.
- Постоечките JavaScript библиотеки како Jquery, D3.js итн. се поддржани преку датотеката Definition, која има наставка.d.ts.
- JavaScript скрипта што веќе постои може да го повика TypeScript кодот. Исто така, беспрекорно се интегрира со тековните рамки и библиотеки на JavaScript.
4. Кои се некои недостатоци при користење на TypeScript?
- Кодирањето со TypeScript бара долг процес на компилација.
- Не поддржува класи што се апстрактни.
- Квалитетот на датотеките со дефиниција на типот е проблем.
- Секоја библиотека од трета страна мора да има датотека со дефиниција за да може да се користи.
- Неопходен е чекор на компилација за да се конвертира TypeScript во JavaScript ако сакаме да ја извршиме апликацијата TypeScript во прелистувачот.
- JavaScript се користи од веб-програмери многу години, а TypeScript не обезбедува ништо ново.
5. Што точно се компонентите на TypeScript?
Во TypeScript, постојат три главни категории на компоненти, вклучувајќи:
- Јазик: Вклучува прибелешки за типот, клучните зборови и синтаксата.
- Компајлер TypeScript: Инструкциите TypeScript се преведени на JavaScript од овој компајлер (tsc).
- Јазична услуга TypeScript: Јазичната услуга нуди апликации слични на уредник како втор слој на врвот на основниот процес на компајлерот. Стандардниот сет на заеднички операции за уредување е поддржан од јазичната услуга.
6. Можете ли да ги објасните интерфејсите во TypeScript?
TypeScript користи интерфејси за одредување на синтаксата на ентитетите. Со други зборови, формите на податоци како објекти или низа ставки може да се опишат со помош на интерфејси. Клучниот збор за интерфејс, името на интерфејсот и неговата дефиниција се користат за декларирање на интерфејси. Ајде да го испитаме основниот интерфејс на корисничкиот објект.
Типот на променлива потоа може да се постави со помош на интерфејсот (слично на тоа како ги доделувате примитивните типови на променливата). Својствата на интерфејсот потоа ќе бидат исполнети со променлива од типот Корисник.
Вашиот проект TypeScript има корист од интерфејси бидејќи тие обезбедуваат униформност. Дополнително, интерфејсите ги подобруваат алатките на вашиот проект со подобрување на способностите за автоматско комплетирање на IDE и гарантирајќи дека вистинските вредности се доставуваат до конструкторите и методите.
7. Што се променливи во TypeScript и како се декларираат на различни начини?
Променлива е специфично одредена област на меморија која се користи за задржување на вредности. Завртка (:) се става по името на променливата и е проследена со типот кога се декларира променлива во TypeScript. Декларираме променливи со клучниот збор var, исто како во JavaScript.
Мора да се почитуваат одредени упатства при декларирање на променлива во Typescript:
- Името не може да започне со број.
- Името на променливата мора да содржи букви или бројки.
- Симболот на доларот ($) и долната црта (_) се единствените специјални знаци што се дозволени во ова поле.
8. Како може подмножество на интерфејс да се користи за генерирање на нов тип?
Со обезбедување на постоечки тип или интерфејс и избирање на копчињата што треба да се исклучат од новиот тип, можете да креирате нов тип во TypeScript користејќи го услужниот тип omit.
Примерот што следи покажува како да се конструира нов тип наречен UserPreview кој се базира на корисничкиот интерфејс, но го исклучува својството за е-пошта.
9. Што подразбирате под „било какви“ типови, и кога треба да ги користам?
Понекогаш треба да зачувате вредност во променливата, но претходно не сте сигурни за типот на променливата. Вредноста може да потекнува од внесување на корисникот или барање API, на пример. Можете да дадете било каков тип на вредност на типот на променлива со користење на типот „било кој“.
Кога типот на променливата не е експлицитно наведен и компајлерот не може да ја одреди од контекстот, TypeScript верува дека променливата е од било кој тип.
10. Како е TypeScript јазик со опционална статички напишана синтакса?
Можно е да му се наложи на компајлерот да го занемари типот на променливата во TypeScript бидејќи таа е опционално статички напишана. Секој тип на податоци може да се користи за да се додели каква било вредност на променливата. Кога се компајлира, TypeScript нема да обезбеди проверка на грешка.
11. Во TypeScript, што значат модулите?
Ефективно е да се групираат релевантните променливи, функции, класи, интерфејси итн. користејќи модули. Може да се користи, но не во глобален опсег, само во својот опсег.
Во суштина, до дефинираните променливи, функции, класи и интерфејси на модулот не може директно да се пристапи надвор од модулот.
Клучниот збор за извоз може да се користи за да се изгради модул, додека клучниот збор за увоз може да се користи за вклучување на модул во друг модул.
12. Како функционираат „enums“ во TypeScript?
Метод за дефинирање на збирка на именувани константи е да се користат нумери или набројани типови. Овие структури на податоци имаат фиксна должина и збир на фиксни вредности.
Кога се претставува збирка на алтернативи за дадена вредност во TypeScript, нумерите често се користат за да се опишат можностите со користење на множество од парови клучеви/вредности.
Ајде да видиме илустрација на нумера која се користи за да се обезбедат различни типови на корисници.
Енумите внатрешно се конвертираат во обични JavaScript објекти со TypeScript по компилацијата. Затоа, употребата на enums се претпочита од употребата на неколку одделни променливи const.
Вашиот код е безбеден за типови и полесен за разбирање поради групирањето што го обезбедуваат нумерите.
13. Што разликува внатрешен модул од надворешен модул?
Внатрешен модул:
- Внатрешните модули беа карактеристика на претходната итерација на Typescript.
- Името и телото на внатрешните модули се дефинирани со помош на ModuleDeclarations.
- Тоа се членови на други модули кои се локални или извезени.
- Класите, интерфејсите, функциите и променливите се групирани заедно во внатрешни модули, кои може да се извезат во друг модул.
Надворешен модул:
- Во најновата верзија, надворешните модули се нарекуваат модули.
- За нивно креирање се користи посебна изворна датотека позната како надворешен модул и секоја има барем една декларација за увоз или извоз.
- Во најновата верзија, надворешните модули се нарекуваат модули.
- Внатрешните изјави на дефинициите на модулите може да се сокријат со помош на надворешни модули, оставајќи ги видливи само методите и аргументите поврзани со дефинираната променлива.
14. Што значи Анонимната функција на TypeScript?
Функциите класифицирани како анонимни немаат име на функција како идентификатор. Овие рутини се динамички дефинирани за време на траењето. Како и обичните функции, анонимните функции можат да земат влезови и да произведуваат резултати.
Анонимната функција обично е недостапна откако ќе се создаде. Променливите може да се доделат на анонимна функција.
15. Во TypeScript, што е именски простор и како се декларира?
Именскиот простор логички ги групира функционалностите. Тие внатрешно го зачувуваат наследниот код на типопис. Ги опфаќа особините и нештата со посебни врски.
Друго име за именскиот простор е внатрешен модул. Интерфејсите, класите, функциите и променливите може да се вклучат во именскиот простор за да обезбедат збирка на поврзани функционалности.
16. Кои модификатори за пристап поддржува TypeScript?
Следниве се примери за тоа како јавните, приватните и заштитените модификатори на пристап во TypeScript може да се користат за контрола на пристапноста на член на класата:
- Јавно – Пристапот е достапен за секој член на класата, сите нејзини потомци и секој примерок од класата.
- Заштитени - Тие се достапни за секој член на класата и сите нејзини подкласи. Сепак, класната инстанца не може да пристапи.
- Приватниот пристап до нив е ограничен само на членовите на класата.
Бидејќи JavaScript е корисна, ако не е даден модификатор за пристап, се претпоставува дека е јавен.
17. Дали TypeScript дозволува преоптоварување на функциите?
Да, преоптоварувањето на функциите е поддржано од TypeScript. Но, сега тоа е направено е чудно. Затоа, при преоптоварување со TypeScript, има само една имплементација со различни потписи.
Додека вториот потпис содржи параметар на тип текст, првиот потпис има само еден параметар од типот број. Третата функција, која вклучува аргумент од типот било, ја содржи вистинската имплементација.
Имплементацијата потоа го одредува типот на дадениот параметар и извршува посебен дел од кодот во согласност со таа определба.
18. Како TypeScript дозволува опционални аргументи во функциите?
Спротивно на JavaScript, ако се обидете да повикате функција без да го наведете прецизниот износ и видовите параметри како што е наведено во неговиот потпис на функцијата, компајлерот TypeScript ќе предизвика грешка.
Можете да користите опционални параметри со користење на симболот за прашалник ('?') за да го надминете овој проблем. Тоа покажува дека опционалните параметри може да се означат со додавање на „?“ на оние кои можат или не можат да добијат вредност.
19. Како var, let и const се разликуваат еден од друг?
Три различни начини за декларирање на променлива се понудени од TypeScript, секој со предложена апликација.
var: Декларира глобална или функционална променлива со однесување и упатства за опсегот на променливите на варијаблите на JavaScript. Променливите не треба нивните вредности да се постават кога се декларирани.
нека: декларира блок променлива со локален опсег. Нека на променливите не им треба вредноста на променливата да се постави кога ќе се декларираат. Терминот „локална променлива со опсег на блок“ се однесува на променлива до која може да се пристапи само од внатрешноста на блокот во кој е содржана, како што е функција, блок if/else или циклус. Нека променливите не можат да се читаат од или да се запишат пред да се декларираат, за разлика од var.
const: Изјавува вредност за константа со блок-опфат што не може да се промени откако ќе се иницијализира. Const променливите треба да се иницијализираат пред да бидат декларирани. За променливите кои остануваат константни во текот на целото свое постоење, ова е оптимално.
20. Во TypeScript, опишете ги декораторите?
Додаток, својство, параметар, класа, функција или декоратор може да се декларира на специфичен начин како декоратори. Декораторите се функции со префиксот @expression кои ќе бидат повикани при извршување со детали за украсената декларација.
Изразот мора да оцени функција за да можат декораторите да работат.
TypeScript Decorators обезбедуваат цел декларативно да додаваат прибелешки и информации на тековниот код.
Во нашата датотека tsconfig.json или на командната линија, мора да ја активирате опцијата за компајлерот ExperimentalDecorators за да овозможите експериментална поддршка за декоратори:
21. Во TypeScript, што значат Mixins?
Миксините се техника на создавање класи од делови за повеќекратна употреба во Javascript и мешање парцијални класи за да се создадат посложени целосни класи.
Концептот е јасен: функцијата Б ја прифаќа класата А и враќа нова класа со додадена нејзина функционалност, наспроти класата А која ја проширува класата Б за да ја добие својата функционалност. Функцијата Б во овој случај е микс.
22. Што точно се типски псевдоними во TypeScript?
Алијасите на типот го менуваат името на типот. Претставниците на типовите, како интерфејсите, може да се користат за именување примитиви, синдикати, торки и сите други типови кои инаку би требало да се дефинираат рачно.
Алијасирањето не создава нов тип; туку го менува името на постоечки тип. Алијансата на примитив не е навистина практично, иако може да биде од корист за документација.
Тип псевдоними, како интерфејси, може да бидат универзални; се што треба да направите е да додадете параметри за тип и да ги користите на десната страна на декларацијата за алијас.
23. Што значи поимот „променлива на опсег“?
JavaScript поддржува и локални и глобални променливи. Опсегот е збирка на објекти, променливи и функции.
Пример за декларирање на променлива во два опсега е:
- Променлива со локален опсег - служи како функционален објект за употреба во рамките на функциите.
- Променлива со глобален опсег - Овој објект на прозорец може да се користи и во и надвор од функциите
24. За што точно се користи noImplicitAny?
Третманот на компајлерот TypeScript на имплицитните било какви типови на вашиот проект е променет со својството noImplicitAny во конфигурациската датотека tsconfig.json за проектите TypeScript.
Знамето noImplicitAny може да се постави на точно или неточно и секогаш е променливо по иницијализацијата. Имајќи предвид дека секој проект е единствен, не постои точен или погрешен одговор за тоа колкава треба да биде оваа бројка.
Разбирањето на разликите помеѓу состојбите на вклучување и исклучување на знамето може да ви помогне да изберете која поставка да ја користите за знамето.
Компајлерот не го одредува типот на променливата врз основа на тоа како се користи ако знамето noImplicitAny е поставено на неточно (стандардно). Наместо тоа, типот е стандардно поставен на било кој од компајлерот.
Меѓутоа, ако опцијата noImplicitAny е поставена на точно, компајлерот ќе се потруди да го заклучи типот и ќе предизвика грешка во времето на компајлирање ако не може да го стори тоа.
25. Како се разликуваат типовите на соединенија и пресеци еден од друг?
Наместо да генерирате нови видови од нула, синдикатите и типовите на пресеци ви дозволуваат да составувате и мешате постоечки типови. И спојувањето и пресекот имаат карактеристични квалитети што ги прават совршени за одредени случаи на употреба.
Тип кој може да биде еден од неколкуте видови се нарекува синдикален тип. Списокот на типови што ќе се користат во новиот тип е поделен со користење на | (вертикална лента) симбол во типови на синџири.
Ајде да погледнеме една илустрација:
Од друга страна, пресекот е дефиниран како тип кој спојува многу типови во еден, интегрирајќи ги сите карактеристики на секој тип за да формира нов тип. Списокот на видови што ќе се спојат е поделен на раскрсници користејќи го симболот &.
Ајде да разгледаме една илустрација:
26. Како го дефинирате TypeScript Declare Keyword?
Нема датотеки со декларација на TypeScript во библиотеките или рамки на JavaScript. Сепак, мора да го користите клучниот збор за декларирање за да ги користите во датотеката TypeScript без да наидете на грешки при компилација.
Кога сакате да наведете променлива која веќе би можела да постои на друго место, го користите клучниот збор declare во амбиенталните декларации и методи.
27. Во TypeScript, што се генерики?
Алатката наречена TypeScript Generics нуди метод за производство на делови за повеќекратна употреба. Наместо да работи само со една форма на податоци, може да развие компоненти кои можат да работат со низа типови на податоци.
Дополнително, нуди безбедност на типот без да се жртвува ефикасноста или продуктивноста. Можеме да изградиме генерички класи, генерички функции, генерички методи и генерички интерфејси благодарение на генериките.
Генериците се високо отчукувани збирки бидејќи параметарот за тип е запишан помеѓу заградите за отворени () и затвори (>). Таа користи уникатна променлива на тип наречена T која се залага за типови.
28. Што значи JSX во TypeScript?
JSX е легитимен JavaScript што може да се конвертира од синтакса слична на XML што може да се вградува. Заедно со рамката React, JSX се здоби со популарност.
Директната компилација, проверката на типот и вградувањето на JSX во JavaScript се поддржани од TypeScript. Мора да ја дадете вашата датотека a.tsx екстензија и да ја активирате опцијата JSX доколку сакате да ја користите.
29. Што се TypeScript Ambients и кога треба да ги користам?
Компајлерот се информира за вистинскиот изворен код кој се наоѓа на друго место преку амбиентални декларации.
Ќе се скрши без претходно известување ако се обидеме да ги искористиме овие изворни кодови при извршување, но тие не се присутни. Датотеките слични на документ се датотеки со амбиентални декларации.
Ако изворот се промени, документацијата мора да се ажурира, а ќе се појават проблеми со компајлерот ако датотеката за декларација на околината не се смени.
Дополнително, ни овозможува да користиме добро познати JavaScript библиотеки кои веќе се широко користени, како што се jQuery, AngularJS, NodeJS итн.
30. Што подразбираш под апстрактна класа во TypeScript?
Апстрактните класи го дефинираат договорот на објектот без да дозволуваат директна инстанција на објектот. Меѓутоа, апстрактната класа може да понуди и информации за имплементацијата на својот член.
Еден или повеќе апстрактни членови може да се најдат во апстрактна класа. Апстрактните членови на суперкласата потоа мора да имаат имплементација обезбедена од која било класа што ја проширува апстрактната класа.
Ајде да погледнеме во TypeScript пример за апстрактна класа и како друга класа може да ја прошири. Иако и класите Car и Bike во примерот подолу ја прошируваат класата Vehicle, секоја од нив ја спроведува функцијата drive() на единствен начин.
31. Што точно е датотека TypeScript Map?
Изворната датотека со карта наречена датотека TypeScript Map содржи податоци за нашите оригинални датотеки. Датотеките со изворна мапа, или датотеките .map, им дозволуваат на алатките да мапираат помеѓу JavaScript кодот што е излезен и изворните датотеки TypeScript што го создале.
Дополнително, овие датотеки може да се консумираат од дебагери, што ни овозможува да ја дебагираме датотеката TypeScript наместо датотеката JavaScript.
32. Во TypeScript, што се тврдењата на типот?
Додека тврдењето на типот функционира слично како и пренесувањето на типови на други јазици како C# и Java, тоа не врши проверка на типот или преуредување на податоците.
Додека тврдењето на типот нема никакво влијание врз времето на траење, типот кастинг ја нуди оваа поддршка. Од друга страна, тврдењата за типови се користат само од компајлерот и даваат насоки за тоа како сакаме да се испита нашиот код.
Заклучок
Како заклучок, се надеваме дека овие прашања за интервју за TypeScript ќе ви бидат корисни, без разлика дали сте програмер што се подготвува за интервју за работа или менаџер за вработување кој се обидува да го најде најдобриот апликант.
Запомнете дека процесот на регрутирање вклучува повеќе од само техничка експертиза. За да се осигурате дека ќе ја добиете (или ќе го најдете соодветниот апликант за) работата, минатите искуства и меките вештини се подеднакво клучни.
Многу прашања за интервју во TypeScript се отворени и немаат ниту еден точен одговор, затоа имајте го тоа на ум.
Интервјутери се заинтересирани за образложението зад вашите одговори.
Секогаш бидете подготвени за дополнителни прашања кои објаснуваат како сте стигнале до вашиот одговор. Опишете го вашиот процес на размислување.
Оставете Одговор