เมื่อคุณเจาะลึกลงไปใน TypeScript คุณจะพบว่ามันเป็นมากกว่า JavaScript เวอร์ชันที่มีตัวแปรแบบคงที่ คุณสมบัติขั้นสูงช่วยให้คุณเขียนโค้ดที่แข็งแกร่ง บำรุงรักษา และปรับขนาดได้สำหรับการทำแอพของคุณ ไม่ว่าจะเป็นการทำเว็บหรือทำแอพ บทนี้สำรวจคุณสมบัติขั้นสูงเหล่านี้ ได้แก่ Generics, Advanced Types, Modules, Decorators และ Mixins
1. Generics
ข้อดีอย่างหนึ่งที่สำคัญของ TypeScript คือการสนับสนุนสำหรับ Generics ซึ่งมีวิธีสร้างส่วนประกอบที่ใช้ซ้ำได้ Generics เป็นเครื่องมือที่ทรงพลังเมื่อพูดถึงการทำเว็บ TypeScript หรือทำแอพ เนื่องจากอนุญาตให้ใช้ส่วนประกอบที่สามารถทำงานได้หลายประเภทมากกว่าประเภทเดียว
ลองจินตนาการว่าคุณกำลังทำเว็บ TypeScript หรือทำแอพ และคุณต้องการฟังก์ชันที่รับอาร์เรย์ของรายการและส่งกลับรายการแรก ด้วย generics คุณสามารถสร้างฟังก์ชันที่ใช้งานได้กับอาร์เรย์ใดๆ โดยไม่คำนึงถึงประเภทขององค์ประกอบ:
function getFirst<T>(items: T[]): T {
return items[0];
}
ไวยากรณ์<T>
แสดงถึงตัวแปรประเภท—สแตนด์อินสำหรับประเภทใดๆ สิ่งนี้อนุญาตgetFirst
ให้ใช้กับอาร์เรย์ประเภทใดก็ได้:
let numbers = getFirst([1, 2, 3]); // number
let strings = getFirst(["a", "b", "c"]); // string
2. ประเภทขั้นสูง (Advanced Types)
นอกจากประเภททั่วไปแล้ว TypeScript ยังแนะนำประเภทขั้นสูงอีกหลายประเภทที่มีประโยชน์อย่างเหลือเชื่อเมื่อทำเว็บ TypeScript หรือทำแอพ
Union Types เป็นวิธีการประกาศประเภทที่อาจเป็นหนึ่งในหลายประเภท ตัวอย่างเช่น พารามิเตอร์ของฟังก์ชันสามารถยอมรับ a number
หรือ a string
:
function formatInput(input: number | string) {
// ...
}
Type Guards เป็นวิธีการให้ข้อมูลประเภทพิเศษภายในขอบเขต สิ่งนี้มีประโยชน์เมื่อต้องจัดการกับประเภทสหภาพแรงงาน:
function formatInput(input: number | string) {
if (typeof input === "number") {
// In this block, input is treated as a number
} else {
// In this block, input is treated as a string
}
}
Type Aliases ให้คุณสร้างชื่อใหม่สำหรับประเภท สิ่งนี้มีประโยชน์ในการลดความซ้ำซ้อนและสร้างชื่อประเภทที่มีความหมายมากขึ้น:
type StringOrNumber = number | string;
function formatInput(input: StringOrNumber) {
// ...
}
3. โมดูล (Modules)
เมื่อฐานโค้ด TypeScript ของคุณเติบโตขึ้น การแยกโค้ดของคุณออกเป็นโมดูลต่างๆ จะเป็นประโยชน์ ในบริบทของการทำเว็บ TypeScript หรือทำแอพ โมดูลสามารถช่วยให้คุณจัดระเบียบโค้ดได้ดีขึ้น ทำให้สามารถบำรุงรักษาและปรับขนาดได้มากขึ้น
ไฟล์ TypeScript แต่ละไฟล์เป็นโมดูลของตัวเอง และคุณสามารถส่งออกและนำเข้าฟังก์ชัน ตัวแปร หรือประเภทจากโมดูลหนึ่งไปยังอีกโมดูลหนึ่งได้:
// math.ts
export function add(a: number, b: number): number {
return a + b;
}
// app.ts
import { add } from './math';
console.log(add(1, 2)); // 3
4. Decorators
Decorators มีวิธีเพิ่มคำอธิบายประกอบและไวยากรณ์การเขียนโปรแกรมเมตาสำหรับการประกาศคลาสและสมาชิก Decorators สามารถใช้เพื่อแก้ไขหรือเพิ่มคลาส เมธอด และคุณสมบัติ หากคุณกำลังทำแอพด้วย TypeScript ตัวตกแต่งจะมีประโยชน์อย่างยิ่งในเฟรมเวิร์กอย่าง Angular:
@Component({
selector: 'my-component',
template: '<div>My Component</div>',
})
export class MyComponent {
// ...
}
ในตัวอย่างข้างต้น @Component
เป็นฟังก์ชัน Decorators ที่ระบุข้อมูลเมตาสำหรับ MyComponent
คลาส
5. Mixins
มิกซ์อิน (Mixins) เป็นแนวคิด TypeScript ที่ช่วยให้นักพัฒนาสร้างคลาสที่รวมพฤติกรรมจากหลายแหล่ง ดังนั้นจึงส่งเสริมการใช้โค้ดซ้ำและโมดูลาร์ ในบริบทของการทำแอพด้วย TypeScript มิกซ์อินสามารถเปิดใช้งานการเพิ่มลักษณะการทำงานที่ใช้ร่วมกันไปยังคลาสต่างๆ ซึ่งสามารถพิสูจน์ได้ว่ามีประโยชน์ในสถานการณ์ที่การสืบทอดไม่ใช่ทางออกที่ดีที่สุด
สมมติว่าคุณกำลังทำเว็บ TypeScript หรือทำแอพ และมีผู้ใช้ประเภทต่างๆ เช่นAdmin
และMember
และคุณต้องการเพิ่มชุดพฤติกรรมการบันทึกทั่วไปให้กับคลาสเหล่านี้ นี่คือวิธีที่คุณสามารถใช้มิกซ์อิน:
// The mixin
type Constructor<T = {}> = new (...args: any[]) => T;
function Logging<T extends Constructor>(Base: T) {
return class extends Base {
log() {
console.log('Logging...');
}
};
}
// Applying the mixin
class Admin {
// Admin-specific behaviors...
}
class Member {
// Member-specific behaviors...
}
const AdminWithLogging = Logging(Admin);
const MemberWithLogging = Logging(Member);
const admin = new AdminWithLogging();
admin.log(); // Logging...
const member = new MemberWithLogging();
member.log(); // Logging...
ในตัวอย่างนี้ Logging
เป็นมิกซ์อินที่คุณสามารถนำไปใช้กับคลาสใดก็ได้เพื่อเพิ่มพฤติกรรมการบันทึก
รวมทุกอย่างเข้าด้วยกัน: การทำเว็บ TypeScript หรือทำแอพ
ด้วยคุณสมบัติ TypeScript ขั้นสูงเหล่านี้ คุณจะมีเครื่องมือที่ทรงพลังมากขึ้นในการทำเว็บ TypeScript หรือทำแอพที่แข็งแกร่ง ปลอดภัยต่อการพิมพ์ และบำรุงรักษาได้ การพิมพ์แบบสแตติกของ TypeScript พร้อมด้วยประเภททั่วไป ประเภทขั้นสูง โมดูล ตัวตกแต่ง และมิกซ์อิน เป็นรากฐานที่มั่นคงสำหรับการพัฒนาแอปพลิเคชันที่ปรับขนาดได้
โปรดจำไว้ว่า TypeScript ไม่ใช่สิ่งทดแทน JavaScript แต่เป็น superset แนวคิด เทคนิค และคุณลักษณะทั้งหมดที่คุณได้เรียนรู้เกี่ยวกับ JavaScript ยังคงใช้ได้เมื่อคุณทำเว็บ TypeScript หรือทำแอพ TypeScript เพียงแค่เพิ่มเครื่องมือเพิ่มเติมให้กับชุดเครื่องมือของคุณ ช่วยให้คุณเขียนโค้ดที่เชื่อถือได้และบำรุงรักษาได้มากขึ้น
ไม่ว่าคุณกำลังทำเว็บ TypeScript หรือทำแอพส่วนตัวแบบธรรมดาหรือแอปพลิเคชันระดับองค์กรที่ซับซ้อน TypeScript สามารถจัดเตรียมโครงสร้างและความทนทานที่จำเป็นสำหรับโครงการของคุณได้ เป็นภาษาที่หลากหลายและทรงพลังที่สามารถทำให้กระบวนการพัฒนาของคุณราบรื่นและมีประสิทธิภาพมากขึ้น
และเมื่อคุณดำเนินการกับ TypeScript ต่อไป โปรดจำไว้ว่าเป้าหมายสูงสุดไม่ใช่แค่การทำความเข้าใจและใช้คุณลักษณะต่างๆ ของมันเท่านั้น แต่ยังเป็นการใช้ประโยชน์จากคุณลักษณะเหล่านั้นในแนวทางที่ปรับปรุงคุณภาพของโค้ดและประสิทธิภาพของกระบวนการทำเว็บ TypeScript และทำแอพของคุณ