1 điểm bởi GN⁺ 2023-07-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • Người dùng TypeScript đang yêu cầu một tính năng có thể tạo thông tin kiểu tại thời gian chạy.
  • Việc thiếu thông tin kiểu thời gian chạy khiến cho tuần tự hóa và kiểm tra tính hợp lệ trở nên khó khăn nếu không có quá nhiều mã boilerplate hoặc không sinh mã.
  • Các giải pháp hiện có như io-ts và zod là chưa đủ cho mọi trường hợp sử dụng.
  • Người dùng TypeScript đang thúc giục nhóm TypeScript ưu tiên giải quyết vấn đề tuần tự hóa này và cung cấp hướng dẫn hoặc đề xuất thư viện.
  • Có vẻ như đang tồn tại xung đột giữa mục tiêu thiết kế của TypeScript và nhu cầu về thông tin kiểu thời gian chạy.
  • Người dùng không muốn giải quyết vấn đề này bằng decorator vì họ thích dùng interface hơn.
  • Một hàm bậc cao hoặc tính năng tương tự như F# Type Providers hay C# Source Generators sẽ được hoan nghênh.
  • Tác giả hứa sẽ gửi bánh và kem nếu nhóm TypeScript giải quyết được vấn đề này, nếu có thể thì ngay trong TypeScript 4.3.

1 bình luận

 
GN⁺ 2023-07-09
Ý kiến trên Hacker News
  • Thảo luận về yêu cầu bổ sung reflection/kiểu thời gian chạy trong TypeScript
  • Một số người bình luận cho rằng vấn đề mà bài viết nêu ra không rõ ràng và được trình bày vụng về.
  • Vai trò của TypeScript là biên dịch sang JavaScript và không cung cấp tính an toàn kiểu ở thời gian chạy.
  • Dự án TypeScript tập trung vào việc xây dựng chú thích kiểu mạnh mẽ và logic kiểm tra tính hợp lệ kiểu ở thời gian chạy.
  • Một số người bình luận phản đối việc thêm kiểm tra kiểu thời gian chạy vào TypeScript, cho rằng điều đó sẽ dẫn tới việc tạo ra một ngôn ngữ mới trên nền JavaScript.
  • Đã có các thư viện sẵn có trong JavaScript để kiểm tra tính hợp lệ kiểu ở thời gian chạy, và yêu cầu này là nhằm đưa ra một lựa chọn mang tính quy chuẩn.
  • Một số người bình luận thích dùng type guard hoặc thư viện bên ngoài cho việc kiểm tra kiểu thời gian chạy.
  • Mục tiêu thiết kế của TypeScript là có cùng ngữ nghĩa thời gian chạy với JavaScript, ngoại trừ enum.
  • Hệ sinh thái xung quanh TypeScript phụ thuộc vào việc xóa kiểu hoàn toàn, và việc bổ sung kiểu thời gian chạy sẽ đòi hỏi thay đổi đáng kể đối với các công cụ hiện có.
  • Một số người bình luận bày tỏ sự không hài lòng với các giới hạn của TypeScript khi so sánh với những ngôn ngữ kiểu tĩnh khác.
  • Một người bình luận cho rằng yêu cầu tự động tuần tự hóa và giải tuần tự hóa các kiểu TypeScript có thể được triển khai bằng thư viện.