เขียนโปรแกรมด้วย Type กับ Parindome (Type-Level Programming)
Вставка
- Опубліковано 12 вер 2024
- "[Video] Type-level Parindome"
(#TypeScript: 🟣 #Archmage )
.
จากที่คุณ Aom Khunpanitchote (🔎 Link #1 / zijlkrpykum5up4u ) ได้โพสเรื่องของ
การตรวจสอบ Parindome โดยเป็น Type-Level Programming
.
เลยขอคุณออมมา อธิบายการเขียนโปรแกรมด้วย Type ให้ทุกคนดูครับ
.
ลิงค์หนังสือในวิดิโอ
type-safe.thad...
type-safe.thad...
#ThaiType #TypeLevel #TypeSafe #TypeSafeDesignPattern
เนื้อหาคุณภาพเลยครับ 👍
วนดูสองรอบเลย
ขอบคุณค๊าบบบ ยินดีครับ
ทำไมตรง IsPalindrome ต้อง infer Arr extends string[] หรอครับ อันนี่ทำให้งง syntax ด้วยในเมื่อมันก็ได้เป็น string[] อยู่แล้ว, เป็น true ตลอด สมมติรับเป็น string ว่างมาก็ return กลับมาเป็น []
และในเมื่อ T มันก็ extend string อยู่แล้ว (อันนี้คือ T ของ IsPalindrome) ทำไมไม่เขียนเป็น PalindromeChecker อย่างงี้หรอครับ
Good Question ครับ
หมายถถึงแบบนี้ใช่มั้ยครับ (ยังไม่ค่อยเข้าใจคำถามทั้งหมดเท่าไหร่ จะลองตอบดูนะครับ)
type IsPalindrome = ToArray extends string[] ? PalindromeChecker : false
แบบนี้ T จะ Error เพราะไม่ใช่ string[] ครับ
ลองเล่นดูครับ tsplay.dev/NaA72N
@@thaitype ขอบคุณครับ
หลัก ๆ ที่ผมจะสื่อคือ ไม่จำเป็นจะต้องเขียน infer Arr ก็ได้ เพราะว่าเรารู้อยู่ละว่า ToArray มันได้เป็น string[] แน่นอน (ถึงเป็น [] ก็ยังเป็นซับเซตของ string[]) ดังนั้นเราสามารถเขียนเป็นแบบนี้ได้เลย
type IsPalindrome = PalindromeChecker
โดยไม่ต้องงง syntax ด้วย อันนี้ผมเข้าใจว่าที่เขียนก็น่าจะให้อ่านได้ง่ายขึ้น แต่กลับว่าถ้าไม่ชินจริงก็อ่านยากกว่าเดิม extends infer extends 555