Inference and Evolution of TypeScript Declaration Files
By Erik Krogh Kristensen, Anders Møller. 2017
16 citations recorded by the source corpus.
TypeScript is a typed extension of JavaScript that has become widely used. More than 2000 JavaScript libraries now have publicly available TypeScript declaration files, which allows the libraries to be used when programming TypeScript applications. Such declaration files are written manually, however, and they are often lagging behind the continuous development of the libraries, thereby hindering their usability. The existing tool tscheck is capable of detecting mismatches between the libraries and their declaration files, but it is less suitable when creating and evolving declaration files. In this work we present the tools tsinfer and tsevolve that are designed to assist the construction of new TypeScript declaration files and support the co-evolution of the declaration files as the underlying JavaScript libraries evolve. Our experimental results involving major libraries demonstrate that tsinfer and tsevolve are superior to tscheck regarding these tasks and that the tools are sufficiently fast and precise for practical use.
Subfields: Artificial Intelligence, Information Systems, Software, Code Generation & Program Synthesis, Program Analysis & Verification
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
In Information Systems
In Software
In Code Generation & Program Synthesis
In Program Analysis & Verification
Citations in the corpus
- Do Machine Learning Models Produce TypeScript Types that Type Check? (2023, background): “(However, there is evidence that some of these type annotations are incorrect [16, 28, 29, 51].)”
- Type test scripts for TypeScript testing (2017, methodology): “Intentional mismatches (7/14): For various reasons, declaration file authors sometimes intentionally write incorrect declarations even when correct alternatives are easily expressible, as also observed in previous work [Feldthaus and Mùller 2014; Kristensen and Mùller 2017].”
- Mixed Messages: Measuring Conformance and Non-Interference in TypeScript (2017, unknown): “Other tools such as TSCheck , TSInfer , and TSEvolve [7, 14] are designed to detect errors in definitions and support the construction of new definitions.”