สารบัญ[ซ่อน][แสดง]
- 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. Type Aliases ใน TypeScript คืออะไร?
- 23. คำว่า “ตัวแปรขอบเขต” หมายถึงอะไร?
- 24. noImplicitAny ใช้ทำอะไรกันแน่?
- 25. ประเภทของสหภาพและทางแยกแตกต่างกันอย่างไร?
- 26. คุณกำหนด TypeScript Declare Keyword อย่างไร?
- 27. ใน TypeScript ยาสามัญคืออะไร?
- 28. JSX หมายถึงอะไรใน TypeScript?
- 29. TypeScript Ambients คืออะไรและฉันควรใช้เมื่อใด
- 30. คุณหมายถึงอะไรโดยคลาสนามธรรมใน TypeScript?
- 31. ไฟล์ TypeScript Map คืออะไร?
- 32. ใน TypeScript การยืนยันประเภทคืออะไร?
- สรุป
Microsoft พัฒนาและสนับสนุนภาษาการเขียนโปรแกรม TypeScript ต่อไป ด้วยการเพิ่มการพิมพ์แบบสแตติกเป็นตัวเลือก จึงเป็นชุดซูเปอร์เซ็ตวากยสัมพันธ์ของ JavaScript
ภาษาการพัฒนาแอปพลิเคชันขนาดใหญ่ TypeScript คอมไพล์ JavaScript เนื่องจาก TypeScript เป็น superset ของ 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 ซึ่งมีนามสกุล .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 โมดูลหมายถึงอะไร
จะมีประสิทธิภาพในการจัดกลุ่มตัวแปรที่เกี่ยวข้อง ฟังก์ชัน คลาส อินเทอร์เฟซ ฯลฯ โดยใช้โมดูล สามารถใช้ได้ แต่ไม่ใช่ในขอบเขตสากล เฉพาะภายในขอบเขตของตัวเองเท่านั้น
โดยพื้นฐานแล้ว ตัวแปร ฟังก์ชัน คลาส และอินเทอร์เฟซที่กำหนดไว้ของโมดูลไม่สามารถเข้าถึงได้โดยตรงจากภายนอกโมดูล
คีย์เวิร์ด export สามารถใช้เพื่อสร้างโมดูล ในขณะที่คีย์เวิร์ด import สามารถใช้เพื่อรวมโมดูลไว้ในโมดูลอื่นได้
12. “enums” ทำงานอย่างไรใน TypeScript?
วิธีการกำหนดคอลเล็กชันของค่าคงที่ที่มีชื่อคือการใช้ enums หรือประเภทที่แจกแจง โครงสร้างข้อมูลเหล่านี้มีความยาวคงที่และชุดของค่าคงที่
เมื่อเป็นตัวแทนของกลุ่มทางเลือกสำหรับค่าที่กำหนดใน TypeScript มักใช้ enums เพื่ออธิบายความเป็นไปได้โดยใช้ชุดของคู่คีย์/ค่า
มาดูภาพประกอบของ enum ที่ใช้ในการจัดเตรียมผู้ใช้ประเภทต่างๆ
Enums ถูกแปลงเป็นอ็อบเจ็กต์ JavaScript ภายในโดย TypeScript หลังจากคอมไพล์ ดังนั้น การใช้ enums จึงเป็นที่นิยมมากกว่าการใช้ตัวแปร const แยกกันหลายตัว
รหัสของคุณปลอดภัยสำหรับพิมพ์และเข้าใจได้ง่ายขึ้นเนื่องจากการจัดกลุ่มที่ enums มีให้
13. อะไรที่ทำให้โมดูลภายในแตกต่างจากโมดูลภายนอก
โมดูลภายใน:
- โมดูลภายในเป็นคุณลักษณะของการทำซ้ำก่อนหน้าของ typescript
- ชื่อและเนื้อหาของโมดูลภายในถูกกำหนดโดยใช้ ModuleDeclarations
- เหล่านี้เป็นสมาชิกของโมดูลอื่นๆ ที่อยู่ในเครื่องหรือส่งออก
- คลาส อินเตอร์เฟส ฟังก์ชัน และตัวแปรถูกจัดกลุ่มเข้าด้วยกันในโมดูลภายใน ซึ่งสามารถส่งออกไปยังโมดูลอื่นได้
โมดูลภายนอก:
- ในเวอร์ชันล่าสุด โมดูลภายนอกจะเรียกว่าโมดูล
- ไฟล์ต้นฉบับแยกต่างหากที่เรียกว่าโมดูลภายนอกถูกใช้เพื่อสร้างไฟล์เหล่านี้ และแต่ละไฟล์มีการประกาศนำเข้าหรือส่งออกอย่างน้อยหนึ่งรายการ
- ในเวอร์ชันล่าสุด โมดูลภายนอกจะเรียกว่าโมดูล
- คำสั่งภายในของคำจำกัดความของโมดูลสามารถซ่อนได้โดยใช้โมดูลภายนอก โดยเหลือเพียงวิธีการและอาร์กิวเมนต์ที่เชื่อมต่อกับตัวแปรที่กำหนดไว้ให้มองเห็นได้
14. ฟังก์ชันนิรนามของ TypeScript หมายถึงอะไร?
ฟังก์ชันที่จัดเป็นแบบไม่ระบุชื่อไม่มีชื่อฟังก์ชันเป็นตัวระบุ รูทีนเหล่านี้ถูกกำหนดแบบไดนามิกระหว่างรันไทม์ เช่นเดียวกับฟังก์ชันปกติ ฟังก์ชันที่ไม่ระบุตัวตนสามารถรับอินพุตและให้ผลลัพธ์ได้
โดยทั่วไปแล้วฟังก์ชันที่ไม่ระบุตัวตนจะไม่สามารถเข้าถึงได้เมื่อสร้างขึ้นแล้ว สามารถกำหนดตัวแปรให้กับฟังก์ชันที่ไม่ระบุชื่อได้
15. ใน TypeScript เนมสเปซคืออะไรและคุณจะประกาศได้อย่างไร
ฟังก์ชั่นการจัดกลุ่มเนมสเปซตามตรรกะ สิ่งเหล่านี้จะรักษารหัสดั้งเดิมของ 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 และผสมบางส่วนของคลาสเพื่อสร้างคลาสเต็มรูปแบบที่ซับซ้อนมากขึ้น
แนวคิดตรงไปตรงมา: ฟังก์ชัน B ยอมรับคลาส A และส่งคืนคลาสใหม่โดยเพิ่มฟังก์ชันการทำงาน ตรงข้ามกับคลาส A ที่ขยายคลาส B เพื่อให้ได้ฟังก์ชันการทำงาน ฟังก์ชัน B ในกรณีนี้คือมิกซ์อิน
22. Type Aliases ใน TypeScript คืออะไร?
นามแฝงประเภทเปลี่ยนชื่อของประเภท นามแฝงประเภท เช่น อินเทอร์เฟซ สามารถใช้เพื่อตั้งชื่อ primitives, unions, tuples และประเภทอื่น ๆ ที่อาจจะต้องกำหนดด้วยมือ
นามแฝงไม่ได้สร้างประเภทใหม่ ค่อนข้างจะเปลี่ยนชื่อประเภทที่มีอยู่ นามแฝงดั้งเดิมนั้นใช้ไม่ได้จริง แม้ว่าจะเป็นประโยชน์สำหรับเอกสารประกอบก็ตาม
นามแฝงประเภท เช่น อินเทอร์เฟซ สามารถเป็นสากลได้ สิ่งที่คุณต้องทำคือเพิ่มพารามิเตอร์ประเภทและใช้งานทางด้านขวาของการประกาศนามแฝง
23. คำว่า “ตัวแปรขอบเขต” หมายถึงอะไร?
JavaScript รองรับตัวแปรขอบเขตทั้งในพื้นที่และส่วนกลาง ขอบเขตคือชุดของอ็อบเจ็กต์ ตัวแปร และฟังก์ชัน
ตัวอย่างการประกาศตัวแปรในสองขอบเขตคือ:
- Variable with Local Scope – ทำหน้าที่เป็นออบเจ็กต์ฟังก์ชันสำหรับการใช้งานภายในฟังก์ชัน
- ตัวแปรที่มีขอบเขตทั่วโลก – วัตถุหน้าต่างนี้สามารถใช้ได้ทั้งภายในและภายนอกฟังก์ชัน
24. noImplicitAny ใช้ทำอะไรกันแน่?
การดำเนินการของคอมไพเลอร์ TypeScript สำหรับประเภทใดก็ตามโดยนัยของโปรเจ็กต์ของคุณจะถูกแก้ไขโดยคุณสมบัติ noImplicitAny ในไฟล์คอนฟิกูเรชัน tsconfig.json สำหรับโปรเจ็กต์ TypeScript
แฟล็ก noImplicitAny สามารถตั้งค่าเป็นจริงหรือเท็จ และสามารถเปลี่ยนแปลงได้เสมอหลังจากการเริ่มต้น เนื่องจากทุกโครงการมีความเป็นเอกลักษณ์ จึงไม่มีคำตอบที่ถูกหรือผิดว่าตัวเลขนี้ควรเป็นอย่างไร
การทำความเข้าใจความแตกต่างระหว่างสถานะเปิดและปิดของธงสามารถช่วยคุณเลือกการตั้งค่าที่จะใช้สำหรับธงได้
คอมไพเลอร์ไม่ได้กำหนดประเภทของตัวแปรตามวิธีการใช้งาน หากตั้งค่าสถานะ noImplicitAny เป็นเท็จ (ค่าเริ่มต้น) คอมไพเลอร์จะตั้งค่าประเภทเป็นใดๆ แทนโดยค่าเริ่มต้น
อย่างไรก็ตาม หากตั้งค่าตัวเลือก noImplicitAny เป็นจริง คอมไพเลอร์จะพยายามอนุมานประเภทและจะทำให้เกิดข้อผิดพลาดเวลาคอมไพล์หากไม่สามารถทำได้
25. ประเภทของสหภาพและทางแยกแตกต่างกันอย่างไร?
แทนที่จะสร้างชนิดใหม่ตั้งแต่ต้น สหภาพและประเภททางแยกช่วยให้คุณสามารถเขียนและผสมประเภทที่มีอยู่ได้ ทั้งยูเนียนและทางแยกมีคุณสมบัติที่โดดเด่นซึ่งทำให้เหมาะสำหรับกรณีการใช้งานบางประเภท
ชนิดที่สามารถเป็นชนิดใดชนิดหนึ่งได้หลายชนิดจะเรียกว่าชนิดยูเนี่ยน รายการประเภทที่จะใช้ในประเภทใหม่จะถูกแบ่งโดยใช้ | (แถบแนวตั้ง) สัญลักษณ์ในประเภทยูเนี่ยน
ลองดูภาพประกอบ:
ทางแยกถูกกำหนดให้เป็นประเภทที่รวมหลายประเภทเข้าเป็นหนึ่งเดียว รวมคุณลักษณะทั้งหมดของแต่ละประเภทเพื่อสร้างรูปแบบใหม่ รายการประเภทที่จะรวมเข้าด้วยกันจะถูกแบ่งออกเป็นทางแยกโดยใช้สัญลักษณ์ &
ลองพิจารณาภาพประกอบ:
26. คุณกำหนด TypeScript Declare Keyword อย่างไร?
ไม่มีไฟล์การประกาศ TypeScript ในไลบรารี JavaScript หรือเฟรมเวิร์ก อย่างไรก็ตาม คุณต้องใช้คีย์เวิร์ดประกาศเพื่อใช้ในไฟล์ TypeScript โดยไม่พบข้อผิดพลาดในการรวบรวม
เมื่อคุณต้องการระบุตัวแปรที่อาจมีอยู่แล้วในที่อื่น ให้ใช้คีย์เวิร์ดประกาศในการประกาศและวิธีการโดยรอบ
27. ใน TypeScript ยาสามัญคืออะไร?
เครื่องมือที่เรียกว่า TypeScript Generics มีวิธีการผลิตชิ้นส่วนที่นำกลับมาใช้ใหม่ได้ แทนที่จะทำงานกับข้อมูลเพียงรูปแบบเดียว มันสามารถพัฒนาส่วนประกอบที่สามารถทำงานกับประเภทข้อมูลได้หลากหลาย
นอกจากนี้ยังให้ความปลอดภัยประเภทโดยไม่ลดทอนประสิทธิภาพหรือผลผลิต เราสามารถสร้างคลาสทั่วไป ฟังก์ชันทั่วไป เมธอดทั่วไป และอินเทอร์เฟซทั่วไปได้โดยใช้ข้อมูลทั่วไป
Generics เป็นคอลเล็กชันที่มีการพิมพ์สูงเนื่องจากพารามิเตอร์ประเภทถูกเขียนระหว่างวงเล็บเปิด () และปิด (>) มันใช้ประโยชน์จากตัวแปรประเภทที่ไม่ซ้ำกันที่เรียกว่า T ซึ่งย่อมาจากประเภท
28. JSX หมายถึงอะไรใน TypeScript?
JSX เป็น JavaScript ที่ถูกต้องตามกฎหมายซึ่งสามารถแปลงจากรูปแบบ XML แบบฝังได้ นอกเหนือจากเฟรมเวิร์ก React แล้ว JSX ยังได้รับความนิยมอีกด้วย
TypeScript รองรับการรวบรวมโดยตรง การตรวจสอบประเภท และการฝัง JSX ลงใน JavaScript คุณต้องให้นามสกุลไฟล์ 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 จำนวนมากเป็นคำถามปลายเปิดและไม่มีคำตอบที่ถูกต้องเพียงข้อเดียว ดังนั้นโปรดระลึกไว้เสมอว่า
ผู้สัมภาษณ์สนใจเหตุผลที่อยู่เบื้องหลังคำตอบของคุณ
พร้อมเสมอสำหรับการสอบถามติดตามผลโดยอธิบายว่าคุณมาถึงคำตอบของคุณได้อย่างไร อธิบายกระบวนการคิดของคุณ
เขียนความเห็น