1 ポイント 投稿者 GN⁺ 2023-07-09 | 1件のコメント | WhatsAppで共有
  • TypeScript ユーザーは、ランタイム型情報を生成できる機能を求めています。
  • ランタイム型情報が存在しないため、シリアライズやバリデーションは、過剰なボイラープレートコードやコード生成なしでは困難です。
  • io-tszod のような既存のソリューションは、すべてのユースケースに十分ではありません。
  • TypeScript ユーザーは、シリアライズの問題を解決し、ガイダンスを提供するかライブラリを推奨することを TypeScript チームの優先事項にするよう求めています。
  • TypeScript の設計目標と、ランタイム型情報の必要性との間には衝突があるように見えます。
  • ユーザーはインターフェースを使うことを好むため、この問題をデコレーターで解決したいとは考えていません。
  • F# の Type Providers や C# の Source Generators に類似した高階関数や機能は歓迎されるでしょう。
  • 著者は、TypeScript チームがこの問題を解決してくれるなら、できれば TypeScript 4.3 で、ケーキとアイスクリームを贈ると約束しています。

1件のコメント

 
GN⁺ 2023-07-09
Hacker Newsの意見
  • TypeScript における reflection/ランタイム型への要望をめぐる議論
  • 記事の問題提起が明確でなく、拙いと考えるコメント投稿者もいます。
  • TypeScript の役割は JavaScript にコンパイルすることであり、ランタイムの型安全性は提供しません。
  • TypeScript のプロジェクトでは、強力な型注釈とランタイム型バリデーションロジックの構築に取り組んでいます。
  • TypeScript にランタイム型チェックを追加することに反対するコメント投稿者もおり、それは JavaScript の上に新しい言語を作ることになると主張しています。
  • JavaScript にはランタイム型バリデーションのための既存ライブラリがあり、この要望は規範的な選択を設けることだとされています。
  • ランタイム型チェックのために、型ガードや外部ライブラリの使用を好むコメント投稿者もいます。
  • TypeScript の設計目標は、列挙型を除いて JavaScript とランタイムセマンティクスを同一にすることです。
  • TypeScript を取り巻くエコシステムは完全な型消去に依存しており、ランタイム型を追加するには既存ツールにかなりの変更が必要です。
  • 他の静的型付け言語と比べたときの TypeScript の制約に不満を示すコメント投稿者もいます。
  • あるコメント投稿者は、TypeScript の型の自動シリアライズおよびデシリアライズを求めるのであれば、ライブラリとして実装できると提案しています。