TypeScript Academy · บทเรียน

นามแฝงชนิดข้อมูลและอินเทอร์เฟซ

เปรียบเทียบและใช้นามแฝงชนิดข้อมูลกับอินเทอร์เฟซ

บทเรียน 2 จาก 410 ขั้นตอน

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

ชื่อแทนชนิดข้อมูลกับอินเทอร์เฟซ

ชื่อแทนชนิดข้อมูลและอินเทอร์เฟซ

ยินดีต้อนรับสู่บทเรียนถัดไป! ในบทเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับ ชื่อแทนชนิดข้อมูล และ อินเทอร์เฟซ ใน TypeScript รวมถึงความแตกต่าง ความคล้ายคลึง และเวลาที่ควรใช้แต่ละแบบ มาเริ่มกันเลย!

นามแฝงชนิดข้อมูลและอินเทอร์เฟซ — ภาพประกอบ 1

ชื่อแทนชนิดข้อมูลคืออะไร

ชื่อแทนชนิดข้อมูลช่วยให้คุณกำหนดชื่อที่กำหนดเองให้กับชนิดข้อมูลได้ โดยสามารถแทนชนิดข้อมูลพื้นฐาน ออบเจ็กต์ หรือแม้แต่รูปแบบฟังก์ชันได้

ตัวอย่าง:

งาน: สร้างชื่อแทนชนิดข้อมูลสำหรับออบเจ็กต์ที่แทนหนังสือ และใช้ชื่อนั้นกำหนดตัวแปร

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 เช่น ชนิดข้อมูลแบบมีเงื่อนไข มาเขียนโค้ดกันต่อ!

นามแฝงชนิดข้อมูลและอินเทอร์เฟซ — ภาพประกอบ 10
เริ่มต้นได้ฟรี

เรียนรู้ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เจเนริกส์
  2. นามแฝงชนิดข้อมูลและอินเทอร์เฟซ
  3. ชนิดข้อมูลอรรถประโยชน์
  4. ตัวตรวจสอบชนิดข้อมูล
← กลับไปที่ TypeScript Academy