สวัสดีครับ ในบทความนี้เราจะมาเรียนรู้เรื่อง Conditional types ใน TypeScript ว่าคืออะไร นำไปใช้ประโยชน์ได้อย่างไร
Conditional Types จะช่วยให้เราสามารถกําหนดความสัมพันธ์ระหว่าง input type และ output type
เรามาดูตัวอย่าง Conditional Types ง่ายๆดังนี้ครับ
interface Animal {
live(): void;
}
interface Dog extends Animal {
woof(): void;
}
type Example1 = Dog extends Animal ? number : string; // Example1 จะมี type เป็น number
type Example2 = RegExp extends Animal ? number : string; // Example2 จะมี type เป็น string
จาก Code ด้านบน จะเห็นว่า เราสามารถใส่ Condition เพื่อเลือกระหว่าง type string และ number ได้
เพื่อความเข้าใจมากขึ้น เรามาดูอีกตัวอย่างกันครับ
interface IdLabel {
id: number /* some fields */;
}
interface NameLabel {
name: string /* other fields */;
}
type NameOrId<T extends number | string> = T extends number ? IdLabel : NameLabel;
// ---cut---
function createLabel<T extends number | string>(idOrName: T): NameOrId<T> {
throw 'unimplemented';
}
let a = createLabel('typescript'); // a จะมี type เป็น NameLabel
let b = createLabel(2.8); // a จะมี type เป็น IdLabel
let c = createLabel(Math.random() ? 'hello' : 42); // a จะมี type เป็น NameLabel | IdLabel
จาก Code ด้านบน จะเห็นว่า Return type จาก Function “createLabel” จะขึ้นอยู่กับ Input Parameter ที่รับเข้ามา
บางครั้งเราอาจจะจําเป็นต้องกําหนด Condition เพิ่มเติมเข้าไปใน Generic type
ตัวอย่างเช่น ถ้าเราต้องการ Type อะไรก็ได้ที่อย่างน้อยต้องมี property “message” เราสามารถเขียน Code ได้ตามนี้
type MessageOf<T extends { message: unknown }> = T['message'];
interface Email {
message: string;
}
type EmailMessageContents = MessageOf<Email>; สวัสดีครับ บทความนี้ผมจะมาเรียนรู้กันนะครับว่า PlatformIO คืออะไร, การ Install เพื่อใช้งานกับ Visual Studio Code (VSCode) รวมไปถึงการสร้าง Project และใช้งานเบื้องต้น
ไฟฉาย Fenix รุ่น UC02SS เป็นไฟฉายรุ่นที่ที่มีความสว่างสูงสุด 130 Lumens แสงพุ่งไกลถึง 48 เมตร จุดเด่นของรุ่นนี้คือ เป็นไฟฉายที่มีขนาดเล็กแต่ให้ความสว่างสูง ใช้แบตเตอรี่ขนาด 10180 คุณสมบัติโดยทั่วไปดังนี้
การบวก-ลบจำนวนเต็มผลบวกระหว่างจำนวนเต็มบวก 2 จำนวน หรือ จำนวนเต็มลบ 2 จำนวน จะมีค่าเท่ากับค่าบวกหรือค่าลบของผลบวกค่าสัมบูรณ์ตามลำดับผลบวกระหว่างจำนวนเต็มบวกกับจำนวนเต็มลบ คือ ผลต่างระหว่างค่าสัมบูรณ์ทั้งสองโดยใช้ค่าสัมบูรณ์มากกว่าเป็นตัวตั้ง แล้วใส่เครื่องหมายตามตัวมากกว่า การลบจำนวนเต็ม ต้องอาศัยการบวกตามข้อตกลงดังนี้ ตัวตั้ง - ตัวลบ = ตัวตั้ง + จำนวนตรงข้ามของตัวลบ ตัวอย่าง เช่น6 - 2 = 6 + (-2)2 - 6 = 2 + (-6)(-15) - 3 = (-15) + (-3)จะเห็นได้ว่า เวลาบวกเลขที่มีเครื่องหมาย ถ้าเครื่องหมายเหมือนกันก็เอาไปรวมกันถ้าเครื่องหมายต่างกันก็เอาไปหักกัน จำนวนที่เหลือก็มีเครื่องหมายตามจำนวนมากในการลบนั้น เราเปลี่ยนเครื่องหมายตัวลบให้เป็นตรงข้ามคือ ถ้าตัวลบเป็นจำนวนลบก็เปลี่ยนเป็นจำนวนบวกแล้วเอาไปบวกกับตัวตั้งถ้าตัวลบเป็นจำนวนบวกก็เปลี่ยนเป็นจำนวนลบแล้วเอาไปบวกกับตัวตั้ง ตัวอย่างเช่น5 + 4 = 95 + (–4) = 1(–5) + 4 = – 1(–5) + (–4) = – 95 – 4 = 5 + (–4) = 1(–5) – 4 = (–5) + (–4) = – 9(–5) – (–4) = (–5) + 4 = – 1ขอบคุณข้อมูลจาก https://sites.google.com/site/jintanapantalam/keiyw-kab-rea/rabb-canwntem