TypeScript
Définition
TypeScript est un sur-ensemble à typage statique de Javascript
- Licence : Apache 2.0
- Exécution : Compile en JavaScript ; s’exécute sur n’importe quel moteur JS (V8, SpiderMonkey, JavaScriptCore)
- Créateur : Anders Hejlsberg (a également créé C Sharp)
- Première publication : 2012
Fonctionnalités du langage
- Typage statique : Annotations de type optionnelles avec inférence de types
- Interfaces : Typage structurel pour les formes d’objets
- Génériques : Composants réutilisables et typés
- Enums : Constantes nommées (numériques et basées sur des chaînes)
- Decorators : Métadonnées et méta-programmation (expérimental/stable selon la version)
- Types utilitaires : Partial, Pick, Omit, Record, etc.
- Type guards : typeof, instanceof, user-defined-type-guards
Versions majeures
| Version |
Année |
Caractéristiques clés |
| TypeScript 1.0 |
2014 |
Première version stable, annotations de type |
| TypeScript 1.5 |
2015 |
Modules, enum, target |
| TypeScript 2.0 |
2016 |
Union-types, intersection-types, literal-types |
| TypeScript 2.4 |
2017 |
string-literal-types |
| TypeScript 2.8 |
2018 |
string-literal-types, const-assertions |
| TypeScript 3.0 |
2018 |
tuple-types, declaration-files |
| TypeScript 3.7 |
2019 |
optional-chaining, nullish-coalescing |
| TypeScript 4.0 |
2020 |
type-narrowing, satisfies-operator |
| TypeScript 4.7 |
2022 |
satisfies-operator, const-type-parameters |
| TypeScript 5.0 |
2023 |
declaration-files, const-type-parameters |
| TypeScript 5.4 |
2024 |
path-mapping, isolated-modules |
Outils
| Outil |
Objectif |
| tsc |
Compilateur TypeScript |
| ts-node |
Exécution directe de TypeScript |
| ESLint + typescript-eslint |
Linting |
| Prettier |
Formatage de code |
| Jest / Vitest |
Tests |
Écosystème
| Framework/Library |
Description |
| Angular |
Framework full-stack de Google (écrit en TypeScript) |
| NestJS |
Framework côté serveur inspiré d’Angular |
| React + TypeScript |
React avec props et hooks typés |
| Vue 3 |
Composition API avec support TypeScript |
| Svelte |
Framework de compilation avec support TS |
Cas d’utilisation
- Applications web à grande échelle (sécurité des types à grande échelle)
- Applications d’entreprise (Angular, NestJS)
- Développement de bibliothèques (publiées sur npm avec types)
- Développement d’API (endpoints typés)
- Codebases en migration depuis JavaScript
Comparaison avec les langages apparentés