0Pricing
TypeScript Academy · บทเรียน

ชนิดข้อมูลออบเจ็กต์ แบบไม่บังคับ/อ่านได้อย่างเดียว และลายเซ็นดัชนี

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

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

บทนำ

เป้าหมาย: กำหนดออบเจ็กต์ที่มีโครงสร้างใน TypeScript คุณจะได้สำรวจชนิดออบเจ็กต์ คุณสมบัติที่ไม่บังคับ ตัวปรับแต่งreadonly และลายเซ็นดัชนีสำหรับคีย์แบบไดนามิก

ออบเจ็กต์พื้นฐาน

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

type User = {
  id: number;
  name: string;
};

const u: User = { id: 1, name: "Ada" };
console.log(u);

พร็อพเพอร์ตีไม่บังคับ

พร็อพเพอร์ตีไม่บังคับ ใช้เครื่องหมาย "?" ออบเจ็กต์อาจไม่ระบุพร็อพเพอร์ตีเหล่านี้ และ TypeScript จะตรวจสอบว่าเป็น undefined หรือไม่ก่อนนำไปใช้

type User = {
  id: number;
  name: string;
  email?: string; // optional
};

const a: User = { id: 1, name: "Ada" };
const b: User = { id: 2, name: "Lin", email: "l@example.com" };

พร็อพเพอร์ตีอ่านอย่างเดียว

อ่านอย่างเดียว รับรองว่าจะไม่สามารถกำหนดค่าพร็อพเพอร์ตีใหม่ได้หลังจากเริ่มต้นค่าแล้ว เหมาะสำหรับค่าคงที่และออบเจ็กต์การกำหนดค่า

type Config = {
  readonly version: number;
  name: string;
};

const cfg: Config = { version: 1, name: "App" };
// cfg.version = 2; // Error, readonly

ลายเซ็นดัชนี

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

type Dictionary = {
  [key: string]: number;
};

const scores: Dictionary = { math: 95, eng: 88 };
console.log(scores["math"]);

การรวมแนวคิด

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

type Settings = {
  readonly id: string;
  theme?: "light" | "dark";
  [extra: string]: string | number | undefined;
};

const s: Settings = { id: "abc", theme: "dark", fontSize: 14 };
console.log(s);

การตรวจสอบพร็อพเพอร์ตีไม่บังคับ

ตรวจสอบอย่างรวดเร็ว: เครื่องหมาย "?" หลังพร็อพเพอร์ตีหมายความว่าอย่างไร

ทบทวน

ทบทวน: ออบเจ็กต์สามารถประกาศพร็อพเพอร์ตีที่จำเป็น ไม่บังคับ อ่านอย่างเดียว และใช้ลายเซ็นดัชนีได้ เครื่องมือเหล่านี้ช่วยสร้างสมดุลระหว่างความยืดหยุ่นกับความปลอดภัย

คำถามที่พบบ่อย

บทเรียน “ชนิดข้อมูลออบเจ็กต์ แบบไม่บังคับ/อ่านได้อย่างเดียว และลายเซ็นดัชนี” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ชนิดข้อมูลออบเจ็กต์ แบบไม่บังคับ/อ่านได้อย่างเดียว และลายเซ็นดัชนี” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ชนิดข้อมูลออบเจ็กต์ แบบไม่บังคับ/อ่านได้อย่างเดียว และลายเซ็นดัชนี”

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

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน

บทเรียน “ชนิดข้อมูลออบเจ็กต์ แบบไม่บังคับ/อ่านได้อย่างเดียว และลายเซ็นดัชนี” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม

ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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