Type providers pro TypeScript
Type providers for TypeScript
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/193872Identifikátory
SIS: 271868
Kolekce
- Kvalifikační práce [11240]
Autor
Vedoucí práce
Oponent práce
Bednárek, David
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika - Softwarové systémy
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
11. 9. 2024
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
type providers|TypeScript|data access|code generationKlíčová slova (anglicky)
type providers|TypeScript|data access|code generationTypové systémy programovacích jazyků obecně nerozumí externím datům. Ve staticky typovaných programovacích jazycích vývojáři pro práci s daty vytvářejí typy a přístupový kód buď ručně nebo s použitím externích nástrojů pro generování kódu. Mechanismus type providers, původně vyvinutý pro jazyk F#, představuje alternativní přístup ke gen- erování kódu, který zlepšuje jak bezpečnost v době kompilace, tak efektivitu vývojářů, za pomoci odvozování typů ze vzorků dat. Tato práce zkoumá implementaci type providers v jazyce TypeScript. V rámci práce jsme navrhli řešení a implementovali funkční prototyp ve formě rozšíření současného překladače TypeScriptu. Užitečnost této funkce demonstrujeme implementací type provider balíčků pro CSV, XML a JSON. 1
Type systems of programming languages generally do not understand external data. In statically typed programming languages, developers handle data by writing typed interfaces and data access code by hand or using external code generation tools. Type providers, originally developed for F#, are an alternative, more integrated approach to code generation that improves compile-time safety and developer experience by inferring types from data samples. This thesis explores the implementation of type providers in TypeScript. We propose a design for the feature and implement a functional prototype as an extension of the current TypeScript compiler. We demonstrate the feature's usefulness by implementing type provider packages for CSV, XML and JSON. 1