Revision 515: Runtime-Typen fur TypeScript

Published: Feb. 8, 2022, 7 a.m.

Marc J. Schmidt (Twitter, Github, Web), Founder bei deepkitIO und\nTypeScript-Nerd, hat sich Gedanken (und noch einiges mehr als blo\xdfe Gedanken) zu\nTypeScript-Runtime-Typen gemacht. In dieser Revision stellt er sich Peters\nkritischen Fragen, und stellt seine Pl\xe4ne f\xfcr eine neue TypeScript-Zukunft vor.\n\n\nSCHAUNOTIZEN\n\n[00:01:01] TYPESCRIPT RUNTIME TYPES/REFLECTION\n\nTypeScript ist de facto ein Linter und f\xfcr alles, was zur Laufzeit passieren\nsoll, braucht es Schema-Validatoren wie zod, die Schema-DSL von Prisma, JSON\nSchema oder eins der zahlreichen anderen Projekte aus dieser Kategorie. Wenn\naber auf Client wie Server TypeScript laufen, dann, so Marc, k\xf6nnten\nRuntime-Typen die bessere L\xf6sung sein! Marc und Peter diskutieren den\nallgemeinen Wert von Typen f\xfcr allerlei Use Cases, die Limitierungen der\nAbleitung von TS-Typen aus Runtime-Tools Branded/Nominal Types und Decorators.\nDer althergebrachten Debatte um Runtime Types/Reflection n\xe4hren wir uns, indem\nwie die M\xf6glichkeiten des Typsystems (Declaration Merging, Control flow analysis\nund alles, was ts-sql m\xf6glich macht) und die Eigenheiten des Projektmanagements\ndes Produkts TypeScript (st\xe4ndige Breaking Changes, keine Spezifikation)\ndurchkauen. Wie k\xf6nnten Runtime Types umgesetzt werden? Marc hat ausf\xfchrlich\nausgearbeitet, wie Runtime-Type-Bytecode in der Praxis aussehen k\xf6nnte! Wir\nsprechen \xfcber den Weg zur Umsetzung, den Kampf mit privaten Compiler-Hooks und\neine m\xf6gliche Zukunft f\xfcr Runtime Types/Reflection im Angesicht der offiziellen\nAnti-Ziele von TypeScript.