นามแฝงชนิดข้อมูลและอินเทอร์เฟซ
เปรียบเทียบและใช้นามแฝงชนิดข้อมูลกับอินเทอร์เฟซ
นามแฝงชนิดข้อมูลและอินเทอร์เฟซ เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
ชื่อแทนชนิดข้อมูลกับอินเทอร์เฟซ
ชื่อแทนชนิดข้อมูลและอินเทอร์เฟซ
ยินดีต้อนรับสู่บทเรียนถัดไป! ในบทเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับ ชื่อแทนชนิดข้อมูล และ อินเทอร์เฟซ ใน TypeScript รวมถึงความแตกต่าง ความคล้ายคลึง และเวลาที่ควรใช้แต่ละแบบ มาเริ่มกันเลย!

ชื่อแทนชนิดข้อมูลคืออะไร
ชื่อแทนชนิดข้อมูลช่วยให้คุณกำหนดชื่อที่กำหนดเองให้กับชนิดข้อมูลได้ โดยสามารถแทนชนิดข้อมูลพื้นฐาน ออบเจ็กต์ หรือแม้แต่รูปแบบฟังก์ชันได้
ตัวอย่าง:
งาน: สร้างชื่อแทนชนิดข้อมูลสำหรับออบเจ็กต์ที่แทนหนังสือ และใช้ชื่อนั้นกำหนดตัวแปร
type Point = {
x: number;
y: number;
};
let point: Point = { x: 10, y: 20 };
console.log(point);
// Output: { x: 10, y: 20 }
อินเทอร์เฟซคืออะไร
อินเทอร์เฟซกำหนดโครงสร้างของออบเจ็กต์ รวมถึงพร็อพเพอร์ตีและเมธอดของออบเจ็กต์ อินเทอร์เฟซมักใช้เพื่อบังคับใช้ความสอดคล้องและความปลอดภัยของชนิดข้อมูลสำหรับออบเจ็กต์
ตัวอย่าง:
งาน: สร้างอินเทอร์เฟซสำหรับโพรไฟล์ผู้ใช้ และใช้ชื่อนั้นกำหนดตัวแปร
interface Point {
x: number;
y: number;
}
let point: Point = { x: 5, y: 15 };
console.log(point);
// Output: { x: 5, y: 15 }
ชื่อแทนชนิดข้อมูลกับอินเทอร์เฟซ: ความคล้ายคลึง
ชื่อแทนชนิดข้อมูลและอินเทอร์เฟซมีคุณสมบัติบางอย่างร่วมกัน:
- ทั้งสองแบบสามารถอธิบายโครงสร้างของออบเจ็กต์ได้
- ทั้งสองแบบสามารถใช้กำหนดชนิดข้อมูลของฟังก์ชันได้
- ทั้งสองแบบรองรับการขยายชนิดข้อมูลอื่น
ตัวอย่าง: ชนิดข้อมูลของฟังก์ชัน:
งาน: กำหนดทั้งชื่อแทนชนิดข้อมูลและอินเทอร์เฟซสำหรับฟังก์ชัน แล้วนำไปใช้
type Add = (a: number, b: number) => number;
interface Subtract {
(a: number, b: number): number;
}
let add: Add = (x, y) => x + y;
let subtract: Subtract = (x, y) => x - y;
console.log(add(5, 3));
// Output: 8
console.log(subtract(5, 3));
// Output: 2
ชื่อแทนชนิดข้อมูลกับอินเทอร์เฟซ: ความแตกต่าง
ต่อไปนี้คือความแตกต่างที่สำคัญ:
- อินเทอร์เฟซ: สามารถ merged ได้ (การรวมการประกาศ)
- ชื่อแทนชนิดข้อมูล: ไม่สามารถ merged ได้
- ชื่อแทนชนิดข้อมูล: สามารถกำหนดชนิดข้อมูลยูเนียนและอินเตอร์เซกชันได้
- อินเทอร์เฟซ: ออกแบบมาเป็นหลักสำหรับกำหนดรูปแบบของออบเจ็กต์
ตัวอย่าง: ชนิดข้อมูลยูเนียนด้วยชื่อแทนชนิดข้อมูล:
งาน: ใช้ชื่อแทนชนิดข้อมูลเพื่อกำหนดชนิดข้อมูลยูเนียน และกำหนดค่าต่าง ๆ ให้กับตัวแปร
type StringOrNumber = string | number;
let value: StringOrNumber = "Hello";
value = 42;
// value = true;
// Error: Type 'true' is not assignable to type 'StringOrNumber'.
การขยายชนิดข้อมูลและอินเทอร์เฟซ
ทั้งชื่อแทนชนิดข้อมูลและอินเทอร์เฟซสามารถขยายชนิดข้อมูลอื่นได้:
- อินเทอร์เฟซ: ใช้คีย์เวิร์ด
extends - ชื่อแทนชนิดข้อมูล: ใช้อินเตอร์เซกชัน (
&)
ตัวอย่าง:
งาน: ขยายชื่อแทนชนิดข้อมูลและอินเทอร์เฟซเพื่อสร้างชนิดข้อมูลใหม่
interface Animal {
name: string;
}
interface Dog extends Animal {
breed: string;
}
type Bird = Animal & { canFly: boolean };
let myDog: Dog = { name: "Buddy", breed: "Golden Retriever" };
let myBird: Bird = { name: "Parrot", canFly: true };
console.log(myDog, myBird);
การรวมการประกาศ
อินเทอร์เฟซรองรับการรวมการประกาศ โดยการประกาศอินเทอร์เฟซหลายรายการที่มีชื่อเดียวกันจะถูกรวมเป็นหนึ่งเดียว ชื่อแทนชนิดข้อมูลไม่รองรับคุณสมบัตินี้
ตัวอย่าง:
งาน: สร้างการประกาศอินเทอร์เฟซสองรายการที่มีชื่อเดียวกัน และทดสอบการรวมการประกาศ
interface Person {
name: string;
}
interface Person {
age: number;
}
let person: Person = { name: "Alice", age: 30 };
console.log(person);
// Output: { name: "Alice", age: 30 }
ควรใช้แต่ละแบบเมื่อใด
ต่อไปนี้คือแนวทางบางส่วน:
- ใช้ อินเทอร์เฟซ เพื่อกำหนดรูปแบบของออบเจ็กต์ และเมื่อจำเป็นต้องใช้การรวมการประกาศ
- ใช้ ชื่อแทนชนิดข้อมูล สำหรับยูเนียน อินเตอร์เซกชัน หรือเมื่อกำหนดชนิดข้อมูลของฟังก์ชัน
เคล็ดลับ: เลือกแบบที่เหมาะกับกรณีการใช้งานของคุณมากที่สุด เพื่อให้โค้ดชัดเจนและสอดคล้องกัน
ยอดเยี่ยมมาก!
ขอแสดงความยินดี! คุณได้เรียนรู้ความคล้ายคลึงและความแตกต่างระหว่างชื่อแทนชนิดข้อมูลกับอินเทอร์เฟซใน TypeScript รวมถึงเวลาที่ควรใช้แต่ละแบบแล้ว ในบทเรียนถัดไป เราจะสำรวจคุณลักษณะขั้นสูงของ TypeScript เช่น ชนิดข้อมูลแบบมีเงื่อนไข มาเขียนโค้ดกันต่อ!

เรียนรู้ TypeScript ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 101
- บทเรียน
- 352
คำถามที่พบบ่อย
บทเรียน “นามแฝงชนิดข้อมูลและอินเทอร์เฟซ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “นามแฝงชนิดข้อมูลและอินเทอร์เฟซ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “นามแฝงชนิดข้อมูลและอินเทอร์เฟซ”
เปรียบเทียบและใช้นามแฝงชนิดข้อมูลกับอินเทอร์เฟซ คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “นามแฝงชนิดข้อมูลและอินเทอร์เฟซ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เจเนริกส์
- นามแฝงชนิดข้อมูลและอินเทอร์เฟซ
- ชนิดข้อมูลอรรถประโยชน์
- ตัวตรวจสอบชนิดข้อมูล