Преглед садржаја[Сакрити][Прикажи]
- 1. Шта је тачно ТипеСцрипт и по чему се разликује од ЈаваСцрипт-а?
- 2. Које су неке значајне карактеристике ТипеСцрипт-а?
- 3. Које су неке предности коришћења ТипеСцрипт-а?
- 4. Који су недостаци коришћења ТипеСцрипт-а?
- 5. Шта су тачно компоненте ТипеСцрипт-а?
- 6. Можете ли да објасните интерфејсе у ТипеСцрипт-у?
- 7. Шта су променљиве у ТипеСцрипт-у и како се декларишу на различите начине?
- 8. Како се подскуп интерфејса може користити за генерисање новог типа?
- 9. Шта подразумевате под 'било којим' типовима и када треба да их користим?
- 10. Како је ТипеСцрипт језик са опционом статички откуцаном синтаксом?
- 11. Шта значе модули у ТипеСцрипт-у?
- 12. Како функционишу „наброји“ у ТипеСцрипт-у?
- 13. Шта разликује интерни модул од екстерног модула?
- 14. Шта значи анонимна функција ТипеСцрипт-а?
- 15. Шта је именски простор у ТипеСцрипт-у и како га декларисати?
- 16. Које модификаторе приступа подржава ТипеСцрипт?
- 17. Да ли ТипеСцрипт дозвољава преоптерећење функција?
- 18. Како ТипеСцрипт дозвољава опционе аргументе у функцијама?
- 19. Како се вар, лет и цонст разликују један од другог?
- 20. У ТипеСцрипт-у описати декоратере?
- 21. Шта у ТипеСцрипт-у значе миксини?
- 22. Шта су тачно псеудоними типа у ТипеСцрипт-у?
- 23. Шта значи израз „Варијабла опсега“?
- 24. За шта се тачно користи ноИмплицитАни?
- 25. Како се типови споја и укрштања разликују један од другог?
- 26. Како дефинишете кључну реч ТипеСцрипт Децларе?
- 27. Шта су генерички у ТипеСцрипт-у?
- 28. Шта ЈСКС значи у ТипеСцрипт-у?
- 29. Шта су ТипеСцрипт амбијенти и када треба да их користим?
- 30. Шта подразумевате под апстрактном класом у ТипеСцрипт-у?
- 31. Шта је заправо датотека ТипеСцрипт мапе?
- 32. Шта су тврдње типа у ТипеСцрипт-у?
- Zakljucak
Мицрософт је развио и наставља да подржава програмски језик ТипеСцрипт. Уз додатак статичког куцања као опције, то је синтактички надскуп ЈаваСцрипт-а.
Језик за развој апликација великих размера ТипеСцрипт компајлира ЈаваСцрипт. Пошто је ТипеСцрипт надскуп ЈаваСцрипт-а, програми написани у ЈаваСцрипт-у такође важе у ТипеСцрипт-у.
Ево свеобухватне листе најтипичнијих питања и одговора на разговору за ТипеСцрипт програмере у случају да присуствујете једном.
1. Шта је тачно ТипеСцрипт и по чему се разликује од ЈаваСцрипт-а?
Суперскуп ЈаваСцрипт-а, ТипеСцрипт се компајлира у стандардни ЈаваСцрипт. Са концептуалног становишта, ТипеСцрипт и ЈаваСцрипт су слични САСС и ЦСС.
Другим речима, ТипеСцрипт је ЕС6 ЈаваСцрипт са још неколико могућности. ЈаваСцрипт је језик за скриптовање сличнији Питхон-у, док је ТипеСцрипт објектно оријентисан, статички откуцани језик упоредив са Јавом и Ц#.
Класе и интерфејси су део ТипеСцрипт-овог објектно оријентисаног дизајна, а закључивање типа је један од многих доступних алата захваљујући његовом статичком куцању.
ЈаваСцрипт је написан у датотеци са екстензијом .јс, док је ТипеСцрипт написан у датотеци са екстензијом .тс.
За разлику од ЈаваСцрипт-а, ТипеСцрипт код се не може директно покренути у прегледачу или на било којој другој платформи и претраживачи га не разумеју. Циљна платформа ће затим покренути обичан ЈаваСцрипт који је генерисан из .тс датотека коришћењем ТипеСцрипт-овог транспилера.
2. Које су неке значајне карактеристике ТипеСцрипт-а?
- Статичко куцање је карактеристика ТипеСцрипт-а која помаже проверу типа током компилације. Дакле, чак и без извршавања скрипте, можете открити грешке у коду док га пишете.
- ДОМ се може мењати коришћењем ТипеСцрипт-а за додавање или уклањање ставки.
- Било који оперативни систем, укључујући Виндовс, мацОС и Линук, може имати инсталиран ТипеСцрипт компајлер.
- Класе, интерфејси и модули су неке од функционалности које нуди ТипеСцрипт. Тако може креирати објектно оријентисани код за развој и на страни клијента и на страни сервера.
- Већина карактеристика ЕЦМАСцрипт 2015 (ЕС 6, 7) је већ укључена у ТипеСцрипт, укључујући класу, интерфејс, функције стрелице итд.
- Ако користите ЈаваСцрипт-ово динамичко куцање, ТипеСцрипт такође подржава опционо статичко куцање.
3. Које су неке предности коришћења ТипеСцрипт-а?
- Било који ЈаваСцрипт механизам или претраживач може да изврши ТипеСцрипт јер је брз, лак за учење и брзо ради.
- Он дели исту синтаксу и семантику као ЈаваСцрипт.
- Ово олакшава брже писање фронт-енд кода од стране бацкенд програмера.
- Укључује ЕС6 и ЕС7 могућности које могу функција у ЈаваСцрипт-у ЕС5 мотори попут Ноде.јс.
- Постојеће ЈаваСцрипт библиотеке као што су Јкуери, Д3.јс итд. су подржане преко датотеке дефиниције, која има екстензију.д.тс.
- ЈаваСцрипт скрипта која већ постоји може да позове ТипеСцрипт код. Такође се неприметно интегрише са тренутним ЈаваСцрипт оквирима и библиотекама.
4. Који су недостаци коришћења ТипеСцрипт-а?
- Кодирање помоћу ТипеСцрипт-а захтева дуг процес компилације.
- Не подржава класе које су апстрактне.
- Квалитет датотека дефиниције типа је проблем.
- Свака библиотека треће стране мора имати датотеку дефиниције да би се користила.
- Корак компилације је неопходан да бисмо претворили ТипеСцрипт у ЈаваСцрипт ако желимо да покренемо ТипеСцрипт апликацију у претраживачу.
- ЈаваСцрипт већ много година користе веб програмери, а ТипеСцрипт не пружа ништа ново.
5. Шта су тачно компоненте ТипеСцрипт-а?
У ТипеСцрипт-у постоје три главне категорије компоненти, укључујући:
- Језик: Садржи напомене за тип, кључне речи и синтаксу.
- ТипеСцрипт Цомпилер: ТипеСцрипт инструкције су преведене у ЈаваСцрипт од стране овог компајлера (тсц).
- ТипеСцрипт Лангуаге Сервице: Језички сервис нуди апликације сличне уређивачу као други слој на врху основног процеса компајлера. Сервис језика подржава стандардни скуп уобичајених операција уређивања.
6. Можете ли да објасните интерфејсе у ТипеСцрипт-у?
ТипеСцрипт користи интерфејсе за спецификацију синтаксе ентитета. Другим речима, облици података попут објеката или низа ставки могу се описати помоћу интерфејса. Кључна реч интерфејса, име интерфејса и његова дефиниција се користе за декларисање интерфејса. Хајде да испитамо основни интерфејс корисничког објекта.
Тип променљиве се тада може подесити помоћу интерфејса (слично како променљивој додељујете примитивне типове). Својства интерфејса ће тада испунити променљива типа Усер.
Ваш ТипеСцрипт пројекат има користи од интерфејса јер обезбеђују униформност. Поред тога, интерфејси побољшавају алате вашег пројекта тако што побољшавају могућности ИДЕ аутодовршавања и гарантују да се праве вредности достављају конструкторима и методама.
7. Шта су променљиве у ТипеСцрипт-у и како се декларишу на различите начине?
Променљива је посебно одређена област меморије која се користи за чување вредности. Двотачка (:) се поставља иза имена променљиве, а прати је тип када се променљива декларише у ТипеСцрипт-у. Променљиве декларишемо кључном речи вар, баш као у ЈаваСцрипт-у.
Одређене смернице се морају поштовати приликом декларисања променљиве у Типесцрипт-у:
- Име не може да почиње бројем.
- Име променљиве мора да садржи слова или бројеве.
- Симбол долара ($) и доња црта (_) су једини специјални знакови који су дозвољени у овом пољу.
8. Како се подскуп интерфејса може користити за генерисање новог типа?
Достављањем постојећег типа или интерфејса и избором кључева који ће бити изузети из новог типа, можете креирати нови тип у ТипеСцрипт-у користећи тип помоћног програма изоставити.
Пример који следи показује како да се направи нови тип под називом УсерПревиев који је заснован на корисничком интерфејсу, али искључује својство е-поште.
9. Шта подразумевате под 'било којим' типовима и када треба да их користим?
Понекад морате да сачувате вредност у променљивој, али претходно нисте сигурни који је тип променљиве. Вредност може да потиче од корисничког уноса или АПИ захтева, на пример. Можете да дате било коју врсту вредности типу променљиве коришћењем типа „било који“.
Када тип променљиве није експлицитно наведен и компајлер није у могућности да га одреди из контекста, ТипеСцрипт верује да је променљива типа било који.
10. Како је ТипеСцрипт језик са опционом статички откуцаном синтаксом?
Могуће је наложити компајлеру да занемари тип променљиве у ТипеСцрипт-у пошто је она опционо статички откуцана. Било који тип података може се користити за додељивање било које врсте вредности променљивој. Када се компајлира, ТипеСцрипт неће обезбедити проверу грешака.
11. Шта значе модули у ТипеСцрипт-у?
Ефикасно је груписати релевантне варијабле, функције, класе, интерфејсе, итд. користећи модуле. Може се користити, али не у глобалном опсегу, само унутар сопственог опсега.
У суштини, дефинисаним варијаблама, функцијама, класама и интерфејсима модула не може се директно приступити изван модула.
Кључна реч екпорт се може користити за прављење модула, док се кључна реч импорт може користити за укључивање модула у други модул.
12. Како функционишу „наброји“ у ТипеСцрипт-у?
Метод дефинисања колекције именованих константи је коришћење енума или набројаних типова. Ове структуре података имају фиксну дужину и колекцију фиксних вредности.
Када се представља колекција алтернатива за дату вредност у ТипеСцрипт-у, енумови се често користе за описивање могућности коришћењем скупа парова кључ/вредност.
Хајде да видимо илустрацију енума који се користи за пружање различитих врста корисника.
Енуми се интерно конвертују у обичне ЈаваСцрипт објекте помоћу ТипеСцрипт-а након компилације. Употреба енума је стога пожељнија од употребе неколико одвојених конст променљивих.
Ваш код је безбедан за типове и лакши за разумевање због груписања које пружа енум.
13. Шта разликује интерни модул од екстерног модула?
Интерни модул:
- Интерни модули су били карактеристика претходне итерације Типесцрипт-а.
- Име и тело интерних модула се дефинишу помоћу МодулеДецларатионс.
- То су чланови других модула који су локални или извезени.
- Класе, интерфејси, функције и променљиве груписане су заједно у интерне модуле, који се могу експортовати у други модул.
Екстерни модул:
- У најновијој верзији, екстерни модули се називају модули.
- За њихово креирање користи се посебна изворна датотека позната као екстерни модул, а сваки има најмање једну декларацију за увоз или извоз.
- У најновијој верзији, екстерни модули се називају модули.
- Унутрашње изјаве дефиниција модула могу се сакрити коришћењем екстерних модула, остављајући видљивим само методе и аргументе повезане са дефинисаном променљивом.
14. Шта значи анонимна функција ТипеСцрипт-а?
Функције класификоване као анонимне немају назив функције као идентификатор. Ове рутине се динамички дефинишу током времена рада. Као и обичне функције, анонимне функције могу узимати улазе и производити резултате.
Анонимна функција је обично недоступна када је креирана. Променљиве се могу доделити анонимној функцији.
15. Шта је именски простор у ТипеСцрипт-у и како га декларисати?
Простор имена логички групише функционалности. Они интерно чувају стари код куцаног писма. Обухвата особине и ствари са одређеним везама.
Друго име за именски простор је интерни модул. Интерфејси, класе, функције и променљиве се могу укључити у именски простор да би се обезбедила колекција повезаних функционалности.
16. Које модификаторе приступа подржава ТипеСцрипт?
Следе примери како се јавни, приватни и заштићени модификатори приступа у ТипеСцрипт-у могу користити за контролу приступачности члана класе:
- Јавно – Приступ је доступан сваком члану класе, свим њеним потомцима и свакој инстанци класе.
- Заштићени – Они су доступни сваком члану класе и свим њеним подкласама. Међутим, инстанца класе не може да приступи.
- Приватни приступ им је ограничен само на чланове класе.
Пошто је ЈаваСцрипт згодан, ако модификатор приступа није дат, претпоставља се да је јаван.
17. Да ли ТипеСцрипт дозвољава преоптерећење функција?
Да, ТипеСцрипт подржава преоптерећење функција. Али сада се то ради је чудно. Стога, када се преоптерећује са ТипеСцрипт-ом, постоји само једна имплементација са различитим потписима.
Док други потпис садржи параметар типа текста, први потпис има само један параметар броја типа. Трећа функција, која укључује аргумент типа ани, садржи стварну имплементацију.
Имплементација затим одређује тип датог параметра и покреће посебан одељак кода у складу са тим одређивањем.
18. Како ТипеСцрипт дозвољава опционе аргументе у функцијама?
За разлику од ЈаваСцрипт-а, ако покушате да позовете функцију без навођења тачне количине и врсте параметара као што је наведено у њеном потпису функције, ТипеСцрипт преводилац ће покренути грешку.
Можете да користите опционе параметре коришћењем симбола упитника ('?') да бисте заобишли овај проблем. Показује да се опциони параметри могу означити додавањем "?" онима који могу или не морају добити вредност.
19. Како се вар, лет и цонст разликују један од другог?
ТипеСцрипт нуди три различита начина за декларисање променљиве, сваки са предложеном апликацијом.
вар: Декларише глобалну променљиву или променљиву са опсегом функције са понашањем ЈаваСцрипт променљивих вар и смерницама за опсег. Променљиве не морају да постављају њихове вредности када су декларисане.
дозволити: декларише променљиву блока локалног опсега. Нека променљиве не морају да се подесе вредност променљиве када су декларисане. Термин „локална променљива са опсегом блока“ односи се на променљиву којој се може приступити само из блока у коме је садржана, као што је функција, блок иф/елсе или петља. Нека се променљиве не могу читати или писати у њих пре него што буду декларисане, за разлику од вар.
цонст: Декларише вредност за константу са опсегом блока која се не може променити након што је иницијализована. Константне променљиве морају бити иницијализоване пре него што буду декларисане. За варијабле које остају константне током читавог свог постојања, ово је оптимално.
20. У ТипеСцрипт-у описати декоратере?
Приступник, својство, параметар, класа, функција или декоратер могу се декларисати на специфичан начин као декоратори. Декоратори су функције са префиксом @екпрессион које ће бити позване током извршавања са детаљима о украшеној декларацији.
Израз мора да процени функцију да би декоратери могли да раде.
ТипеСцрипт декоратори пружају циљ декларативног додавања напомена и информација тренутном коду.
У нашој датотеци тсцонфиг.јсон или на командној линији, морате активирати опцију компајлера експерименталДецораторс да бисте омогућили експерименталну подршку за декоратере:
21. Шта у ТипеСцрипт-у значе миксини?
Миксини су техника креирања класа од делова за вишекратну употребу у Јавасцрипт-у и мешања делимичних класа да би се креирале сложеније пуне класе.
Концепт је једноставан: функција Б прихвата класу А и враћа нову класу са доданом функционалношћу, за разлику од класе А која проширује класу Б да би добила своју функционалност. Функција Б у овом случају је микин.
22. Шта су тачно псеудоними типа у ТипеСцрипт-у?
Алијаси типа мењају име типа. Псеудоними типова, попут интерфејса, могу се користити за именовање примитива, синдиката, тупле-а и свих других типова који би иначе морали да се дефинишу ручно.
Алиасинг не ствара нови тип; него мења име постојећег типа. Алиаса примитивца није баш практично, иако може бити од користи за документацију.
Алијаси типа, попут интерфејса, могу бити универзални; све што треба да урадите је да додате параметре типа и користите их на десној страни декларације алијаса.
23. Шта значи израз „Варијабла опсега“?
ЈаваСцрипт подржава и локалне и глобалне променљиве опсега. Опсег је колекција објеката, променљивих и функција.
Пример декларисања променљиве у два опсега је:
- Променљива са локалним опсегом – служи као функцијски објекат за коришћење унутар функција.
- Променљива са глобалним опсегом – Овај објекат прозора може да се користи и унутар и изван функција
24. За шта се тачно користи ноИмплицитАни?
Третман ТипеСцрипт компајлера имплицитних било којих типова вашег пројекта мења својство ноИмплицитАни у конфигурационој датотеци тсцонфиг.јсон за ТипеСцрипт пројекте.
Ознака ноИмплицитАни се може поставити на тачно или нетачно и увек је променљива након иницијализације. С обзиром на то да је сваки пројекат јединствен, не постоји тачан или погрешан одговор на то шта би овај број требало да буде.
Разумевање разлика између укључених и искључених стања заставице може вам помоћи да изаберете које подешавање ћете користити за заставу.
Компајлер не одређује тип променљиве на основу тога како се користи ако је заставица ноИмплицитАни постављена на фалсе (подразумевано). Тип је уместо тога подразумевано подешен на било који од стране компајлера.
Међутим, ако је опција ноИмплицитАни постављена на труе, компајлер ће се потрудити да закључи тип и покренуће грешку у времену компајлирања ако то не може да уради.
25. Како се типови споја и укрштања разликују један од другог?
Уместо да генеришете нове врсте од нуле, спојеви и типови укрштања вам омогућавају да компонујете и мешате постојеће типове. И спој и пресек имају карактеристичне особине које их чине савршеним за одређене случајеве употребе.
Тип који може бити један од неколико врста назива се тип синдиката. Листа типова који ће се користити у новом типу подељена је помоћу | (вертикална трака) симбол у типовима синдиката.
Погледајмо илустрацију:
С друге стране, пресек је дефинисан као тип који спаја многе типове у један, интегришући све карактеристике сваког типа да би се формирао нови тип. Листа врста које ће бити спојене подељена је на раскрснице помоћу симбола &.
Хајде да погледамо илустрацију:
26. Како дефинишете кључну реч ТипеСцрипт Децларе?
Не постоје ТипеСцрипт декларацијске датотеке у ЈаваСцрипт библиотекама или оквирима. Међутим, морате да користите кључну реч децларе да бисте их користили у ТипеСцрипт датотеци без наиласка на грешке при компилацији.
Када желите да наведете променљиву која би већ могла да постоји негде другде, користите кључну реч децларе у амбијенталним декларацијама и методама.
27. Шта су генерички у ТипеСцрипт-у?
Алат под називом ТипеСцрипт Генерицс нуди метод за производњу делова за вишекратну употребу. Уместо да ради само са једним обликом података, може да развије компоненте које могу да раде са низом типова података.
Поред тога, нуди сигурност типа без жртвовања ефикасности или продуктивности. Можемо да градимо генеричке класе, генеричке функције, генеричке методе и генеричке интерфејсе захваљујући генеричким.
Генерике су високо типоване колекције пошто је параметар типа написан између отворених () и затворених (>) заграда. Користи јединствену врсту променљиве типа звану Т која означава типове.
28. Шта ЈСКС значи у ТипеСцрипт-у?
ЈСКС је легитиман ЈаваСцрипт који се може конвертовати из синтаксе сличне КСМЛ-у који се може уградити. Заједно са Реацт фрамеворк-ом, ЈСКС је стекао популарност.
ТипеСцрипт подржава директну компилацију, проверу типа и уграђивање ЈСКС-а у ЈаваСцрипт. Датотеци морате дати екстензију а.тск и активирати опцију ЈСКС ако желите да је користите.
29. Шта су ТипеСцрипт амбијенти и када треба да их користим?
Компајлер се информише о стварном изворном коду који се налази негде другде преко амбијенталних декларација.
Поквариће се без икаквог претходног обавештења ако покушамо да користимо ове изворне кодове током извршавања, али они нису присутни. Датотеке сличне документима су датотеке амбијенталних декларација.
Ако се извор промени, документација се мора ажурирати, а проблеми са компајлером ће се појавити ако се датотека амбијенталне декларације не промени.
Поред тога, омогућава нам да искористимо добро познате ЈаваСцрипт библиотеке које су већ широко коришћене, као што су јКуери, АнгуларЈС, НодеЈС, итд.
30. Шта подразумевате под апстрактном класом у ТипеСцрипт-у?
Апстрактне класе дефинишу уговор објекта без дозвољавања директног инстанцирања објекта. Међутим, апстрактна класа такође може понудити информације о имплементацији свог члана.
Један или више апстрактних чланова може се наћи у апстрактној класи. Апстрактни чланови суперкласе тада морају имати имплементацију коју обезбеђују све класе које проширују апстрактну класу.
Хајде да погледамо ТипеСцрипт пример апстрактне класе и како би је друга класа могла проширити. Иако и класе Цар и Бике у примеру испод проширују класу Вехицле, свака од њих имплементира функцију дриве() на јединствен начин.
31. Шта је заправо датотека ТипеСцрипт мапе?
Изворна датотека мапе која се зове ТипеСцрипт Мап датотека садржи податке о нашим оригиналним датотекама. Датотеке изворне мапе, или .мап датотеке, омогућавају алатима да мапирају између ЈаваСцрипт кода који се излази и ТипеСцрипт изворних датотека које су га произвеле.
Поред тога, ове датотеке могу да конзумирају програми за отклањање грешака, што нам омогућава да отклонимо грешке у ТипеСцрипт датотеци уместо у ЈаваСцрипт датотеци.
32. Шта су тврдње типа у ТипеСцрипт-у?
Док тврдња типа функционише слично као примену типа у другим језицима као што су Ц# и Јава, она не спроводи верификацију типа или преуређивање података.
Док тврдња типа нема утицаја на време извођења, преливање типа нуди ову подршку. Тврдње типа, с друге стране, користи само компајлер и дају смернице о томе како желимо да се наш код испита.
Zakljucak
У закључку, надамо се да ће вам ова питања за разговор за ТипеСцрипт бити од помоћи, било да сте програмер који се спрема за интервју за посао или менаџер за запошљавање који покушава да пронађе најбољег кандидата.
Запамтите да процес регрутовања укључује више од техничке стручности. Да бисте били сигурни да ћете добити (или лоцирати одговарајућег кандидата за) посао, прошла искуства и меке вештине су подједнако кључни.
Многа питања ТипеСцрипт интервјуа су отворена и немају један тачан одговор, па имајте то на уму.
Анкетаре занима образложење ваших одговора.
Увек будите спремни на додатна питања која објашњавају како сте дошли до свог одговора. Опишите свој мисаони процес.
Ostavite komentar