การใช้งาน keyof type operator ใน TypeScript

14 Aug 2023,
Share: 
Cover image

สวัสดีครับ ในบทความนี้เราจะมาทําความรู้จักกับ keyof type operator ใน TypeScript กันครับ

keyof type operator คือการดึงเอา key ของ Object ออกมาเป็น literal type

เพื่อความเข้าใจมากขึ้นเรามาดูตัวอย่างกันครับ

type MyType = { a: boolean; b: string; 100: string };
type M = keyof MyType;

const v1: M = 'a'; // No Error
const v2: M = 'b'; // No Error
const v3: M = 100; // No Error
const v4: M = 1; // Error
const v5: M = 'aaa'; // Error
const v6: M = true; // Error

จากตัวอย่างด้านบน เราสร้าง type M จาก keyof MyType ดังนั้น Type M จะเป็น literal type ของ key ที่ อยู่ใน MyType ทําให้เมื่อเรานํา M ไปกำหนดให้กับตัวแปรใด ตัวแปรนั้นๆจะเก็บค่าเฉพาะ literal type ของ key ที่ อยู่ใน MyType เท่านั้น

เพื่อให้เห็นภาพมากขึ้นเรามาดูตัวอย่างการนำไปใช้งานดังนี้ครับ

function getProperty<T>(obj: T, key: keyof T) {
  return obj[key];
}

let x = { a: 1, b: 2, c: 3, d: 4 };

getProperty(x, 'a');
getProperty(x, 'm'); // Error เพราะ property "m" ไม่มีใน x

Suggestion blogs

AND gate

AND gate เป็นวงจร digital ชนิดหนึ่ง โดย input ที่ป้อนให้กับวงจรในแต่ละขา จะเป็นได้สองสถานะคือ High, Low หรือ 0, 1

swap memory ใน ubuntu

swap คือ file ประเภทหนึ่งที่ทําหน้าที่คลาย ram โดยจะต่างจาก ram ตรงที่ เป็นไฟล์ที่ถูกเขียนบน HDD ซึ่งจะมีความเร็วน้อยกว่า ram ในกรณีที่ ram ไม่พอ เราสามารถสร้าง swap มาใช้เป็น ram สํารองได้

Daylight Saving Time คืออะไร

Daylight Saving Time คือ การปรับเวลาให้เร็วขึ้นหรือช้าลง เนื่องจากแกนโลกมีความเอียงเล็กน้อย ทําให้ในประเทศที่อยู่แถบซีกโลกเหนือมีช่วงเวลากลางวัน และกลางคืนมีระยะเวลายาวนานไม่เท่ากันในแต่ละเดือน ในบางเดือนช่วงเวลากลางวันยาวนานมากอาจจะยาวไปถึง 3-4 ทุ่ม ก็ยังสว่างอยู่ ซึ่งต่างจากประเทศที่อยู่ในแถบเส้นศูนย์สูตรหรือเขตร้อนอย่างไทยเรา


Copyright © 2019 - 2025 thiti.dev |  v1.57.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ