๐ค AI Summary
This study addresses the limited systematic understanding of real-world defects in the TypeScript ecosystem, particularly the lack of empirical evidence on how the type system influences fault distribution. Through a large-scale analysis of 633 defect reports from 16 prominent open-source projects, we develop a fine-grained defect taxonomy and employ statistical methods to examine its relationship with project size, domain, and dependency structure. Our findings reveal that faults in TypeScript projects predominantly stem from toolchain issues, configuration errors, API misuse, and asynchronous error handlingโrather than traditional logic or syntax bugs. While static typing significantly suppresses runtime and type-related errors, the locus of failures has shifted toward build systems and integration boundaries, highlighting toolchain complexity and dependency management as key drivers of modern software faults.
๐ Abstract
TypeScript has rapidly become a popular language for modern web development, yet its effect on software faults remains poorly understood. This paper presents the first large-scale empirical study of bugs in real-world TypeScript projects. We analyze 633 bug reports from 16 popular open-source repositories to construct a taxonomy of fault types, quantify their prevalence, and relate them to project characteristics such as size, domain, and dependency composition. Our results reveal a fault landscape dominated not by logic or syntax errors but by tooling and configuration faults, API misuses, and asynchronous error-handling issues. We show that these categories correlate strongly with build complexity and dependency heterogeneity, indicating that modern failures often arise at integration and orchestration boundaries rather than within algorithmic logic. A longitudinal comparison with JavaScript studies shows that while static typing in TypeScript has reduced traditional runtime and type errors, it has shifted fragility toward build systems and toolchains. These findings offer new insight into how language design and ecosystem evolution reshape the fault profiles of large-scale software systems.