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