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

ชนิดลิเทอรัลแม่แบบ: รูปแบบข้อความ

รวมยูเนียนของข้อความเป็นชนิดรูปแบบ

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

ยินดีต้อนรับ

ประเภทลิเทอรัลแม่แบบใช้ไวยากรณ์แบ็กทิกในระดับประเภท เพื่อสร้างประเภทสตริงจากการผสมประเภทสตริงอื่น ๆ

ประเภทลิเทอรัลแม่แบบพื้นฐาน

รวมประเภทลิเทอรัลสตริงด้วยไวยากรณ์แม่แบบ
type Greeting = `Hello, ${string}`;
const g: Greeting = 'Hello, World'; // OK
// const bad: Greeting = 'Hi there'; // Error

การรวมยูเนียน

เมื่อใช้ยูเนียนในลิเทอรัลแม่แบบ TypeScript จะสร้างชุดการผสมที่เป็นไปได้ทั้งหมด
type Color = 'red' | 'green' | 'blue';
type Size = 'sm' | 'lg';
type ColorSize = `${Color}-${Size}`;
// 'red-sm' | 'red-lg' | 'green-sm' | ...

รูปแบบชื่อเหตุการณ์

การใช้งานทั่วไปอย่างหนึ่งคือการสร้างชื่อเหตุการณ์ที่มีประเภทกำกับจากเอนทิตี
type Entity = 'user' | 'product';
type EventName = `on${Capitalize<Entity>}Created`;
// 'onUserCreated' | 'onProductCreated'

Capitalize และประเภทในตัวอื่น ๆ

TypeScript มี Capitalize, Uncapitalize, Uppercase และ Lowercase เป็นประเภทในตัวสำหรับจัดการสตริง
type T = Capitalize<'hello world'>; // 'Hello world'
type U = Uppercase<'hello'>;        // 'HELLO'
type L = Lowercase<'WORLD'>;        // 'world'

รูปแบบการสร้างชื่อเมธอดรับค่า

ใช้ประเภทลิเทอรัลแม่แบบร่วมกับประเภทแมปเพื่อสร้างชื่อเมธอดรับค่า
type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
};

พารามิเตอร์เส้นทางที่มีประเภทกำกับ

แยกพารามิเตอร์เส้นทางที่มีประเภทกำกับจากสตริงรูปแบบ URL
type RouteParams<T extends string> =
  T extends `${infer _Start}:${infer Param}/${infer Rest}`
    ? Param | RouteParams<Rest>
    : T extends `${infer _Start}:${infer Param}`
    ? Param
    : never;

การตั้งชื่อคุณสมบัติ CSS

สร้างชื่อคุณสมบัติกำหนดเองของ CSS ที่มีประเภทกำกับ
type CSSVar = `--${string}`;
const color: CSSVar = '--primary-color'; // OK

ลิเทอรัลแม่แบบในพารามิเตอร์ฟังก์ชัน

ใช้ประเภทลิเทอรัลแม่แบบเพื่อจำกัดพารามิเตอร์สตริง
function emit<E extends `on${string}`>(event: E): void {
  console.log('Emitting:', event);
}
emit('onClick'); // OK
// emit('click'); // Error — must start with 'on'

การแยกส่วนด้วย infer

ใช้ infer ภายในลิเทอรัลแม่แบบเพื่อแยกสตริงย่อยในระดับประเภท
type GetSuffix<T extends string> =
  T extends `${infer _Prefix}_${infer Suffix}` ? Suffix : never;
type S = GetSuffix<'user_created'>; // 'created'

อินเตอร์เซกชันกับ Record

รวมประเภทลิเทอรัลแม่แบบกับ Record เพื่อสร้างแมปตัวจัดการเหตุการณ์ที่มีประเภทกำกับ
type Handlers<T extends string> = Record<`on${Capitalize<T>}`, () => void>;

ตรวจสอบความเข้าใจ

`type R = `${string | number}-id`` ประเมินค่าเป็นอะไร

สรุป

ประเภทลิเทอรัลแม่แบบสร้างประเภทสตริงจากการผสมกันโดยใช้ไวยากรณ์แบ็กทิก ประเภทเหล่านี้กระจายตัวเหนือยูเนียน ทำงานร่วมกับตัวช่วย Capitalize และ Uppercase และเปิดใช้รูปแบบที่มีประสิทธิภาพสำหรับชื่อเหตุการณ์ พารามิเตอร์เส้นทาง และตัวแปร CSS

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

บทเรียน “ชนิดลิเทอรัลแม่แบบ: รูปแบบข้อความ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ชนิดลิเทอรัลแม่แบบ: รูปแบบข้อความ”

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

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

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

บทเรียน “ชนิดลิเทอรัลแม่แบบ: รูปแบบข้อความ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ชนิดแมป: การแปลงชนิดออบเจ็กต์
  2. ตัวปรับแต่งในชนิดแมป: readonly และ ?
  3. ชนิดลิเทอรัลแม่แบบ: รูปแบบข้อความ
  4. การเปลี่ยนชื่อคีย์ด้วย as ในชนิดแมป
← กลับไปที่ TypeScript Academy