1 คะแนน โดย GN⁺ 2023-07-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ผู้ใช้ TypeScript กำลังเรียกร้องฟีเจอร์ที่สามารถสร้างข้อมูลประเภทในช่วงรันไทม์ได้
  • การไม่มีข้อมูลประเภทในช่วงรันไทม์ทำให้การทำซีเรียลไลซ์และการตรวจสอบความถูกต้องทำได้ยาก หากไม่มีโค้ดแบบ boilerplate จำนวนมากหรือการสร้างโค้ด
  • โซลูชันที่มีอยู่ในปัจจุบัน เช่น io-ts และ zod ยังไม่เพียงพอสำหรับทุกกรณีการใช้งาน
  • ผู้ใช้ TypeScript กำลังกระตุ้นให้ทีม TypeScript ให้ความสำคัญกับการแก้ปัญหาการซีเรียลไลซ์ และจัดทำแนวทางหรือแนะนำไลบรารี
  • ดูเหมือนจะมีความขัดแย้งระหว่างเป้าหมายการออกแบบของ TypeScript กับความจำเป็นของข้อมูลประเภทในช่วงรันไทม์
  • ผู้ใช้ไม่ต้องการแก้ปัญหานี้ด้วย decorators เพราะพวกเขานิยมใช้ interfaces
  • ฟังก์ชันขั้นสูงหรือความสามารถที่คล้ายกับ F# Type Providers หรือ C# Source Generators จะได้รับการต้อนรับ
  • ผู้เขียนสัญญาว่าหากทีม TypeScript แก้ปัญหานี้ได้ ถ้าเป็นไปได้ใน TypeScript 4.3 เขาจะส่งเค้กและไอศกรีมไปให้

1 ความคิดเห็น

 
GN⁺ 2023-07-09
ความเห็นจาก Hacker News
  • การอภิปรายเกี่ยวกับคำขอให้มี reflection/ประเภทขณะรันไทม์ใน TypeScript
  • ผู้แสดงความคิดเห็นบางคนมองว่าการตั้งประเด็นปัญหาในบทความไม่ชัดเจนและทำได้ไม่ดีนัก
  • บทบาทของ TypeScript คือการคอมไพล์เป็น JavaScript และไม่ได้ให้ความปลอดภัยของประเภทในขณะรันไทม์
  • โปรเจกต์ TypeScript มุ่งสร้าง type annotation ที่แข็งแรงและตรรกะการตรวจสอบความถูกต้องของประเภทขณะรันไทม์
  • ผู้แสดงความคิดเห็นบางคนคัดค้านการเพิ่มการตรวจสอบประเภทรันไทม์เข้าไปใน TypeScript โดยโต้แย้งว่านั่นจะเท่ากับสร้างภาษาใหม่บน JavaScript
  • มีไลบรารีที่มีอยู่แล้วสำหรับการตรวจสอบความถูกต้องของประเภทขณะรันไทม์ใน JavaScript และคำขอนี้คือการทำให้เกิดตัวเลือกมาตรฐาน
  • ผู้แสดงความคิดเห็นบางคนชอบใช้ type guard หรือไลบรารีภายนอกสำหรับการตรวจสอบประเภทรันไทม์
  • เป้าหมายการออกแบบของ TypeScript คือให้มีความหมายเชิงรันไทม์เหมือนกับ JavaScript ทุกประการ ยกเว้น enum
  • ระบบนิเวศรอบ TypeScript พึ่งพาการลบประเภทอย่างสมบูรณ์ และการเพิ่มประเภทรันไทม์จะต้องทำให้เครื่องมือที่มีอยู่เปลี่ยนแปลงครั้งใหญ่
  • ผู้แสดงความคิดเห็นบางคนแสดงความไม่พอใจกับข้อจำกัดของ TypeScript เมื่อเทียบกับภาษา static type อื่น ๆ
  • ผู้แสดงความคิดเห็นคนหนึ่งเสนอว่าคำขอเรื่องการทำ serialization และ deserialization อัตโนมัติของประเภทใน TypeScript สามารถทำเป็นไลบรารีได้