Բառը[Թաքցնել][Ցուցադրում]
- 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. Ի՞նչ է նշանակում «Scope variable» տերմինը:
- 24. Կոնկրետ ինչի՞ համար է օգտագործվում noImplicitAny-ը:
- 25. Ինչպե՞ս են միմյանցից տարբերվում միության և հատման տեսակները:
- 26. Ինչպե՞ս եք սահմանում TypeScript Declare Keyword-ը:
- 27. TypeScript-ում ի՞նչ են ջեներիկները:
- 28. Ի՞նչ է նշանակում JSX TypeScript-ում:
- 29. Որոնք են TypeScript Ambient-ները և երբ պետք է օգտագործեմ դրանք:
- 30. Ի՞նչ նկատի ունեք TypeScript-ում աբստրակտ դաս ասելով:
- 31. Ի՞նչ է իրենից ներկայացնում TypeScript Map ֆայլը:
- 32. TypeScript-ում ի՞նչ են տիպային պնդումները:
- Եզրափակում
Microsoft-ը մշակել և շարունակում է աջակցել 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-ում, ներառյալ դասը, ինտերֆեյսը, Arrow գործառույթները և այլն:
- Եթե դուք օգտագործում եք JavaScript-ի դինամիկ մուտքագրումը, TypeScript-ն աջակցում է նաև կամընտիր ստատիկ մուտքագրում:
3. Որո՞նք են TypeScript-ի օգտագործման որոշ առավելություններ:
- Ցանկացած JavaScript շարժիչ կամ բրաուզեր կարող է գործարկել TypeScript, քանի որ այն արագ է, հեշտ է սովորել և արագ է աշխատում:
- Այն կիսում է նույն շարահյուսությունը և իմաստաբանությունը, ինչ JavaScript-ը:
- Սա հեշտացնում է հետնամասի ծրագրավորողների կողմից ճակատային կոդի ավելի արագ գրելը:
- Այն ներառում է ES6 և ES7 հնարավորություններ, որոնք կարող են գործառույթը JavaScript-ում ES5 շարժիչներ, ինչպիսիք են Node.js-ը:
- Գոյություն ունեցող JavaScript գրադարանները, ինչպիսիք են Jquery-ը, D3.js-ը և այլն, աջակցվում են Definition ֆայլի միջոցով, որն ունի the.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-ում ստեղծել նոր տեսակ՝ օգտագործելով օգտակար տիպի բացթողումը:
Հետևյալ օրինակը ցույց է տալիս, թե ինչպես կարելի է կառուցել 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-ի կողմից առաջարկվում է փոփոխական հայտարարելու երեք տարբեր եղանակներ, որոնցից յուրաքանչյուրն ունի առաջարկվող հավելված:
էրՀայտարարում է գլոբալ կամ ֆունկցիայի շրջանակով փոփոխական՝ JavaScript-ի փոփոխականների վարքագծի և շրջանակի ուղեցույցներով: Փոփոխականներին անհրաժեշտ չէ, որ դրանց արժեքները սահմանվեն, երբ դրանք հայտարարագրվեն:
թող: հայտարարում է տեղական շրջանակով բլոկային փոփոխական: Թող փոփոխականներին անհրաժեշտ չէ փոփոխականի արժեքը սահմանել, երբ դրանք հայտարարագրվեն: «Block-scoped local variable» տերմինը վերաբերում է փոփոխականին, որին կարելի է մուտք գործել միայն այն բլոկի ներսից, որտեղ այն պարունակվում է, օրինակ՝ ֆունկցիա, if/else բլոկ կամ հանգույց: Թող փոփոխականները չեն կարող կարդալ կամ գրվել մինչև դրանք հայտարարվելը, ի տարբերություն var-ի:
const: Հայտարարում է բլոկային շրջանակով հաստատունի արժեք, որը չի կարող փոփոխվել սկզբնավորումից հետո: Const փոփոխականները պետք է սկզբնավորվեն նախքան հայտարարվելը: Փոփոխականների համար, որոնք հաստատուն են մնում իրենց ողջ գոյության ընթացքում, սա օպտիմալ է:
20. TypeScript-ում նկարագրե՛ք դեկորատորներին:
Աքսեսուարը, հատկությունը, պարամետրը, դասը, ֆունկցիան կամ դեկորատորը բոլորը կարող են հատուկ ձևով հայտարարվել որպես դեկորատորներ: Decorators-ը @expression նախածանցով ֆունկցիաներ են, որոնք կկանչվեն գործարկման ժամանակ՝ զարդարված հայտարարագրի մանրամասներով:
Արտահայտությունը պետք է գնահատի ֆունկցիան, որպեսզի դեկորատորներն աշխատեն:
TypeScript Decorators-ն ապահովում է ընթացիկ ծածկագրին ծանոթագրություններ և տեղեկատվություն դեկլարատիվ կերպով ավելացնելու նպատակ:
Մեր tsconfig.json ֆայլում կամ հրամանի տողում դուք պետք է ակտիվացնեք ExperimentalDecorators կոմպիլյատոր տարբերակը, որպեսզի միացնեք դեկորատորների փորձնական աջակցությունը.
21. TypeScript-ում ի՞նչ են նշանակում Mixins-ը:
Միքսները Javascript-ում բազմակի օգտագործման մասերից դասեր ստեղծելու և մասնակի դասերի խառնման տեխնիկա են՝ ավելի բարդ ամբողջական դասեր ստեղծելու համար:
Հայեցակարգը պարզ է. B ֆունկցիան ընդունում է A դասը և վերադարձնում է նոր դաս՝ ավելացված իր ֆունկցիոնալությամբ, ի տարբերություն A դասի, որն ընդլայնում է B դասը՝ իր ֆունկցիոնալությունը ստանալու համար: B ֆունկցիան այս դեպքում միքսին է:
22. Կոնկրետ որո՞նք են TypeScript-ի տիպային անունները:
Տիպի փոխանունները փոխում են տիպի անունը: Տիպերի անունները, ինչպես ինտերֆեյսները, կարող են օգտագործվել պարզունակների, միությունների, բազմակների և ցանկացած այլ տեսակների անվանման համար, որոնք այլապես պետք է սահմանվեն ձեռքով:
Aliasing-ը նոր տեսակ չի ստեղծում. ավելի շուտ, այն փոխում է գոյություն ունեցող տեսակի անվանումը: Պարզունակ անվանելն իրականում գործնական չէ, թեև այն կարող է օգտակար լինել փաստաթղթավորման համար:
Տիպի այլանունները, ինչպես միջերեսները, կարող են լինել ունիվերսալ. ընդամենը պետք է ավելացնել տիպի պարամետրերը և օգտագործել դրանք կեղծանունի հայտարարագրի աջ կողմում:
23. Ի՞նչ է նշանակում «Scope variable» տերմինը:
JavaScript-ն աջակցում է ինչպես տեղական, այնպես էլ գլոբալ շրջանակի փոփոխականներին: Շրջանակը օբյեկտների, փոփոխականների և գործառույթների հավաքածու է:
Երկու շրջանակով փոփոխական հայտարարելու օրինակ է.
- Փոփոխական Local Scope-ով – Այն ծառայում է որպես ֆունկցիայի օբյեկտ՝ գործառույթների շրջանակներում օգտագործելու համար:
- Փոփոխական գլոբալ տիրույթով – Այս պատուհանի օբյեկտը կարող է օգտագործվել ինչպես գործառույթների ներսում, այնպես էլ դրսում
24. Կոնկրետ ինչի՞ համար է օգտագործվում noImplicitAny-ը:
TypeScript կոմպիլյատորի վերաբերմունքը ձեր նախագծի անուղղակի ցանկացած տեսակների նկատմամբ փոխվում է noImplicitAny հատկությամբ tsconfig.json կազմաձևման ֆայլում TypeScript նախագծերի համար:
NoImplicitAny դրոշը կարող է սահմանվել true կամ false և միշտ փոփոխական է սկզբնավորումից հետո: Հաշվի առնելով, որ յուրաքանչյուր նախագիծ եզակի է, չկա ճիշտ կամ սխալ պատասխան, թե որն է այս թիվը:
Դրոշի միացման և անջատման վիճակների միջև տարբերությունները հասկանալը կարող է օգնել ձեզ ընտրել, թե ինչ պարամետր օգտագործել դրոշի համար:
Կազմողը չի որոշում փոփոխականի տեսակը՝ հիմնվելով այն բանի վրա, թե ինչպես է այն օգտագործվում, եթե noImplicitAny դրոշակը դրված է false (կանխադրված): Փոխարենը, տիպը կոմպիլյատորի կողմից դրված է ցանկացածի լռելյայն:
Այնուամենայնիվ, եթե noImplicitAny ընտրանքը սահմանվի true, կոմպիլյատորը կփորձի պարզել տեսակը և կառաջարկի կոմպիլյացիայի ժամանակի սխալ, եթե չկարողանա դա անել:
25. Ինչպե՞ս են միմյանցից տարբերվում միության և հատման տեսակները:
Զրոյից նոր տեսակներ ստեղծելու փոխարեն, միությունները և խաչմերուկների տեսակները թույլ են տալիս կազմել և խառնել գոյություն ունեցող տեսակները: Ե՛վ միացումը, և՛ խաչմերուկը ունեն տարբերակիչ հատկություններ, որոնք դրանք կատարյալ են դարձնում որոշակի օգտագործման դեպքերի համար:
Տեսակը, որը կարող է լինել մի քանի տեսակներից մեկը, կոչվում է միության տեսակ: Տեսակների ցանկը, որոնք կօգտագործվեն նոր տեսակի մեջ, բաժանված է | (ուղղահայաց բար) նշան միության տեսակներում:
Եկեք նայենք մի նկարազարդման.
Մյուս կողմից, խաչմերուկը սահմանվում է որպես մի տեսակ, որը միավորում է բազմաթիվ տեսակներ մեկի մեջ՝ ինտեգրելով յուրաքանչյուր տեսակի բոլոր հատկանիշները՝ ձևավորելով նոր տեսակ: Տեսակների ցանկը, որոնք կմիավորվեն, բաժանված են խաչմերուկների՝ օգտագործելով & նշանը:
Եկեք քննենք մի օրինակ.
26. Ինչպե՞ս եք սահմանում TypeScript Declare Keyword-ը:
JavaScript-ի գրադարաններում կամ շրջանակներում TypeScript-ի հայտարարագրման ֆայլեր չկան: Այնուամենայնիվ, դուք պետք է օգտագործեք declare հիմնաբառը, որպեսզի դրանք օգտագործեք TypeScript ֆայլում՝ առանց կոմպիլացիոն սխալների հանդիպելու:
Երբ ցանկանում եք նշել փոփոխական, որն արդեն կարող է գոյություն ունենալ մեկ այլ տեղ, դուք օգտագործում եք declare հիմնաբառը միջավայրի հայտարարագրերում և մեթոդներում:
27. TypeScript-ում ի՞նչ են ջեներիկները:
TypeScript Generics կոչվող գործիքն առաջարկում է բազմակի օգտագործման մասերի արտադրության մեթոդ: Տվյալների միայն մեկ ձևի հետ աշխատելու փոխարեն այն կարող է մշակել բաղադրիչներ, որոնք կարող են աշխատել տվյալների մի շարք տեսակների հետ:
Բացի այդ, այն առաջարկում է տիպի անվտանգություն՝ առանց արդյունավետության կամ արտադրողականության զոհաբերության: Մենք կարող ենք ստեղծել ընդհանուր դասեր, ընդհանուր գործառույթներ, ընդհանուր մեթոդներ և ընդհանուր ինտերֆեյսեր՝ ընդհանրականների շնորհիվ:
Ջեներիկները խիստ տպագրված հավաքածուներ են, քանի որ տիպի պարամետրը գրված է բաց () և փակ (>) փակագծերի միջև: Այն օգտագործում է տիպի եզակի փոփոխական, որը կոչվում է T, որը նշանակում է տեսակներ:
28. Ի՞նչ է նշանակում JSX TypeScript-ում:
JSX-ը լեգիտիմ JavaScript է, որը կարող է փոխարկվել ներկառուցվող XML-ի նման շարահյուսությունից: React շրջանակի հետ մեկտեղ JSX-ը ձեռք բերեց ժողովրդականություն:
Ուղղակի կոմպիլյացիան, տիպի ստուգումը և JSX-ի JavaScript-ում ներկառուցումը աջակցվում են TypeScript-ի կողմից: Դուք պետք է տրամադրեք ձեր ֆայլը a.tsx ընդլայնում և ակտիվացնեք JSX տարբերակը, եթե ցանկանում եք այն օգտագործել:
29. Որոնք են TypeScript Ambient-ները և երբ պետք է օգտագործեմ դրանք:
Կոմպիլյատորը տեղեկացվում է իրական աղբյուրի կոդի մասին, որը գտնվում է այլուր շրջակա միջավայրի հայտարարագրերի միջոցով:
Այն կխախտվի առանց որևէ նախնական ծանուցման, եթե մենք փորձենք օգտագործել այս կոդերը գործարկման ժամանակ, բայց դրանք չկան: Փաստաթղթի նման ֆայլերը շրջապատող հայտարարագրերի ֆայլեր են:
Եթե սկզբնաղբյուրը փոխվի, փաստաթղթերը պետք է թարմացվեն, և կոմպիլյատորի հետ կապված խնդիրներ կառաջանան, եթե միջավայրի հայտարարագրման ֆայլը չփոխվի:
Բացի այդ, այն մեզ հնարավորություն է տալիս օգտագործել հայտնի 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-ի հարցազրույցի շատ հարցեր բաց են և չունեն մեկ ճիշտ պատասխան, այնպես որ հիշեք դա:
Հարցազրուցավարներին հետաքրքրում է ձեր պատասխանների հիմքում ընկած հիմնավորումը:
Միշտ պատրաստ եղեք հետագա հարցումներին՝ բացատրելով, թե ինչպես եք հասել ձեր պատասխանին: Նկարագրեք ձեր մտքի գործընթացը:
Թողնել գրառում