Stoiber, T. (2025). Consequences of gradual typing: A survey on how TypeScript’s any is used in public repositories [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2025.115621
E194 - Institut für Information Systems Engineering
-
Date (published):
2025
-
Number of Pages:
66
-
Keywords:
TypeScript any
de
TypeScript any
en
Abstract:
Dreizehn Jahre nach seiner Erstveröffentlichung zählt TypeScript zu den am häufigsten verwendeten Programmiersprachen. Durch seine Unterstützung von „Gradual Typing“ im Typsystem hat es diesen Ansatz einer breiten Anwender:innenschaft zugänglich gemacht. In dieser Arbeit legen wir Fokus darauf, wie „Gradual Typing“, eingeführt durch den „any“-Typen, in der Praxis angewandt wird. Dazu untersuchen wir, wie ebendieser Typ in öffentlichen TypeScript-Repositorys eingesetzt wird.In unserer Studie analysieren wir 151 öffentlich zugängliche TypeScript-Repositorys hinsichtlich der Verwendung des „any“-Typs und betrachten sowohl explizite als auch inferierte Verwendungen in Kontexten wie Variablendeklarationen, Eigenschaftsdeklarationen in Klassen, Funktionseingangsparametern und und Funktionsrückgabewerten. Zusätzlich untersuchen wir Übergänge zwischen schwach und stark typisierten Code sowie den Anteil der auf JavaScript-Code zurückzuführenden „any“-Verwendungen.Die Ergebnisse zeigen, dass der „any“-Typ ein fest verankertes und häufig verwendetes Feature in den untersuchten TypeScript-Repositorys ist und in allen Kontexten regelmäßig auftritt. Die Verwendungen von „any“ sind heterogen, mit deutlichen Unterschieden zwischen Kontexten und Projekten. Insgesamt konnte beobachtet werden, dass die Mehrheit der „any“-Vorkommen inferiert wird und nur ein kleiner Teil direkt auf JavaScript-Code zurückgeführt werden kann. Daraus kann geschlossen werden, dass „Gradual Typing“ und der „any“-Typ in TypeScript ein eigenes Konzept darstellt, dessen Verwendung weit über reine Kompatibilität zu JavaScript hinausgeht.
de
Thirteen years after its release, TypeScript has become one of the most widely used programming languages and a major vehicle for introducing gradual typing to the broader programming community. This thesis investigates how developers actually utilize gradual typing in practice by analyzing the use of the “any” type in real-world TypeScript projects. The goal is to provide an empirical overview of how gradual typing manifests itself in contemporary TypeScript code.The study examines 151 public TypeScript repositories using the TypeScript Compiler API to extract both explicit and inferred type information, the latter in contexts of variable declarations, property declarations, function parameters, and function returns. In addition, we conduct an exploratory analysis of transition points between strongly and weakly typed code, and examine how JavaScript compatibility is directly linked to the usage of the “any” type.The results show that “any” is a prevalent feature in TypeScript repositories, being heavily used across all examined contexts and appearing as a heterogeneous and widespread element of TypeScript code. Its use varies considerably between repositories and instance categories, as well as in comparison to primitive TypeScript types. The majority of occurrences is inferred rather than explicitly annotated, and only a small share of “any” cases can be directly traced back to JavaScript sources. These findings demonstrate that gradual typing in TypeScript extends far beyond backward compatibility, and is instead utilized as its own individual concept in everyday TypeScript development.
en
Additional information:
Arbeit an der Bibliothek noch nicht eingelangt - Daten nicht geprüft Abweichender Titel nach Übersetzung der Verfasserin/des Verfassers