ชนิดข้อมูลออบเจ็กต์ แบบไม่บังคับ/อ่านได้อย่างเดียว และลายเซ็นดัชนี
กำหนดชนิดข้อมูลออบเจ็กต์ด้วยคุณสมบัติ ทำให้บางคุณสมบัติไม่บังคับหรืออ่านได้อย่างเดียว และใช้ลายเซ็นดัชนีเพื่อรองรับคีย์ที่ยืดหยุ่น
ชนิดข้อมูลออบเจ็กต์ แบบไม่บังคับ/อ่านได้อย่างเดียว และลายเซ็นดัชนี เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิดข้อมูลออบเจ็กต์ แบบไม่บังคับ/อ่านได้อย่างเดียว และลายเซ็นดัชนี
- อินเทอร์เฟซเทียบกับนามแฝงชนิดข้อมูล
- การกำหนดชนิดข้อมูลเชิงโครงสร้างและการตรวจสอบคุณสมบัติส่วนเกิน