Manuscrit

Manuscrit
TypeScript Logo.svg
Donnee de base
Paradigmes : fonctionnel , impératif , orienté objet ( prototypes , classes ), structuré , scripting
Année d'édition: 2012
Designer: Microsoft
Développeur: Anders Hejlsberg , Microsoft
Version actuelle  4.1.3   (15 décembre 2020)
Taper : fort , faible , canard , dynamique , statique , explicite , implicite
Influencé par: JavaScript , Java , C #
Licence : Licence Apache
www.typescriptlang.org

TypeScript est un langage de programmation développé par Microsoft basé sur les propositions de la norme ECMAScript -6. Les constructions de langage TypeScript telles que les classes , l' héritage , les modules et les fonctions anonymes ont également été adoptées dans ECMAScript 6.

Le compilateur TypeScript développé par Microsoft compile le code TypeScript selon ECMA Script 3 (ES3) , éventuellement également selon ECMA Script 5 (ES5) en JavaScript brut . Chaque code JavaScript est donc également un code TypeScript valide, de sorte que les bibliothèques JavaScript courantes (telles que jQuery ou AngularJS ) peuvent également être utilisées dans TypeScript.

Avec les modules, TypeScript prend en charge l'encapsulation des classes, interfaces, fonctions et variables dans leurs propres espaces de noms. Une distinction est faite entre les modules internes et externes. Les modules internes sont basés sur la spécification de module d'ECMAScript 6, tandis que les modules externes utilisent une bibliothèque JavaScript ( AMD ou CommonJS ).

TypeScript peut être intégré dans divers outils de gestion de build à l' aide de plug-ins , notamment Grunt (grunt-ts), Apache Maven (plugin TypeScript Maven) et Gradle (plugin TypeScript Gradle).

l'histoire

La première version publique de TypeScript a été publiée en 2012 après deux ans de développement par Microsoft en version 0.8. Peu de temps après l'annonce du langage, il a été salué par Miguel de Icaza . Cependant, il s'est plaint qu'il n'y avait pas d'autre environnement de développement que Microsoft Visual Studio , qui n'était pas disponible pour Linux et macOS en 2013 . Depuis 2013, il existe un support de plug-in pour Eclipse , fourni par Palantir Technologies . Un grand nombre d'éditeurs de texte et d'environnements de développement prennent désormais en charge TypeScript. Ceux-ci incluent Emacs , vim , Sublime Text , WebStorm , Atom et le propre éditeur de Microsoft, Visual Studio Code .

TypeScript 0.9 a été publié en 2013 et a pris en charge les types génériques .

TypeScript 1.0 a été présenté à la conférence des développeurs interne de Microsoft Build en 2014. Visual Studio a également reçu la prise en charge de TypeScript.

En juillet 2014, les développeurs de TypeScript ont annoncé un nouveau compilateur qui devrait être cinq fois plus rapide que l'ancien. Dans le même temps, le code source TypeScript précédent a été migré de CodePlex vers GitHub .

La version 2.0 est sortie le 22 septembre 2016, qui a introduit diverses nouvelles fonctions. Entre autres, une fonction optionnelle a été introduite pour empêcher l'initialisation des variables nullpar défaut . Cela devrait conduire à moins d' exceptions de pointeur nul .

La version 3.0 est sortie le 30 juillet 2018. Le nouveau type primitif est particulièrement remarquable unknown. Avec void(le type d'unité) et never(le type vide), il complète les frontières de la hiérarchie des types: unknownest un type universel; n'importe quel objet peut être affecté à l'une de ces variables et par conséquent unknownrien ne peut être attendu d'une valeur. TypeScript demande ensuite des assertions ou des vérifications. Contrairement à cela, il anys'agit également d'un type universel, mais TypeScript permet d'utiliser directement les valeurs, bien qu'il n'y ait en fait aucune information à leur sujet. Ce n'est unknownrien de plus que l'équivalent de type sécurisé de any.

Fonctionnalités

TypeScript étend le langage ECMAScript 6 par les fonctionnalités suivantes:

Les éléments suivants ont été ajoutés via un backport d'ECMAScript 2015:

  • Des classes
  • Modules
  • Syntaxe des flèches pour les fonctions anonymes
  • Paramètres optionnels et paramètres standard

Compatibilité avec JavaScript

TypeScript est un sur-ensemble strict d'ECMAScript 2015, qui est lui-même un sur-ensemble d'ECMAScript 5, souvent mis en référence avec JavaScript. Un programme JavaScript est donc également un programme TypeScript valide. Cela signifie que TypeScript peut utiliser JavaScript sans aucun problème. Le compilateur utilise normalement ECMAScript 5, mais il existe également la possibilité d'utiliser des constructions d'ECMAScript 3 ou 2015.

TypeScript offre la possibilité d'utiliser du code JavaScript existant et des bibliothèques JavaScript connues.

Signature de méthode

TypeScript fournit des signatures de méthode qui permettent de vérifier les méthodes lors de la compilation. Ceci est facultatif et peut être ignoré.

function add(left: number, right: number): number {
	return left + right;
}

Les annotations pour les types primitifs sont number, booleanet string.

Des classes

TypeScript prend en charge les classes ECMAScript 2015 qui peuvent utiliser des signatures de méthode facultatives:

class Person {
    private name: string;
    private age: number;
    private salary: number;

    constructor(name: string, age: number, salary: number) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    toString(): string {
        return `${this.name} (${this.age}) (${this.salary})`; // As of version 1.4
    }
}

Programmation générique

TypeScript prend en charge la programmation générique . Voici un exemple de fonction d'identité:

function doSomething<T>(arg: T): T {
    return arg;
}

conception

TypeScript est issu du langage de script JavaScript et vise à remédier à ses lacunes dans le développement de grandes applications, initiées par Microsoft. Le défi de gérer le code complexe de JavaScript a conduit à la création d'un outil personnalisé pour simplifier le développement de ces composants.

Les développeurs de TypeScript recherchaient une solution qui ne compromettrait pas la compatibilité avec le standard ou l'indépendance de plateforme de JavaScript. Sachant qu'ECMAScript souhaitait à l'avenir prendre en charge la programmation basée sur les classes, TypeScript a été développé sur ce principe. Cela a abouti à un compilateur JavaScript avec des extensions qui traduisent le code en JavaScript.

Prise en charge d'ECMAScript 2015

TypeScript a ajouté la prise en charge de la norme ECMAScript 2015.

l'histoire

Numéro de version Date de sortie Changements
0,8 1 octobre 2012 Première publication
0,9 18 juin 2013 Expressions génériques , surcharge de paramètres constants, énumération
1.1 6 octobre 2014 Amélioration des performances
1,3 12 novembre 2014 protected Modificateur d'accès , types de tuple
1,4 20 janvier 2015 Types d'union letet constdéclarations, chaînes de modèles, protections de type, alias de type
1,5 20 juillet 2015 Modules ES6 , namespacemot - clé, for..ofsupport, décorateur
1,6 16 septembre 2015 Prise en charge de JSX, types d'intersection, déclarations de type local, classes et méthodes abstraites, fonctions de garde définies par l'utilisateur
1,7 30 novembre 2015 Support pour asyncetawait
1,8 22 février 2016 Contraintes Génériques, analyse des erreurs de flux de contrôle, types de littéraux de chaîne, allowJs
2.0 22 septembre 2016 nullet undefinedtypes préventifs, analyse de nevertype basée sur le flux de contrôle, types d'union discriminés, type, readonlymot-clé,this
2,1 8 novembre 2016 keyof et types de recherche, types mappés, propriétés résiduelles et étalées pour les objets
2.2 22 février 2017 Classes mixtes, objecttype
2,3 27 avril 2017 async Itération, paramètres génériques par défaut, option stricte
2,3 27 juin 2017 importexpressions dynamiques , énumérations de chaînes, héritage amélioré pour les types de données génériques, contravariance stricte pour les paramètres de rappel
2,5 31 août 2017 variables de clause catch facultatives pour les exceptions
2.6 31 octobre 2017 types de fonction stricts
2,7 31 janvier 2018 const-named propriétés, tuples de longueur fixe
2,8 27 mars 2018 Types conditionnels, amélioration des keyoftypes combinés avec les intersections
2,9 31 mai 2018 Prise en charge numberet symbolpropriétés nommées avec keyofdes cartes finies. import(...)-Les types.
3.0 30 juillet 2018 Tuples en tant que paramètres de reste, expressions étalées pour les tuples, paramètres de reste génériques, éléments optionnels dans les tuples, en unknowntant que type universel (voir aussi la théorie des types ), defaultPropsdans JSX
3.1 27 septembre 2018 Tuples et types de tableaux mappés
3.2 30 novembre 2018 Contrôle plus strict de bind, calletapply
3,3 31 janvier 2019 Règles lâches pour les méthodes de types de connexion, builds incrémentiels pour les projets communs
3.4 29 mars 2019 Améliorations apportées aux constructions incrémentielles, aux projets composites, à l'inférence, aux tableaux en lecture seule, à la vérification de type pour les variables globales et bien d'autres
3,5 29 mai 2019 Omit comme nouveau type intégré
3,6 28 août 2019 Fonctions d'itérateur et de générateur plus strictes, prise en charge d' Unicode pour les identificateurs
3,7 5 novembre 2019 Chaînage facultatif, opérateur de fusion nullish, fonctions d'assertion, prise en charge améliorée des méthodes qui retournent never, et bien d'autres.
3,8 20 février 2020 Importations et exportations de type uniquement, champs privés, awaitmodifications de niveau supérieur et bien d'autres.
3,9 12 mai 2020 @‌ts-expect-errorAméliorations de la vitesse de construction, commentaires, améliorations de l'éditeur et autres changements.
4.0 20 août 2020 Variadique tuples , les noms des éléments dans un tuple, un meilleur soutien JSX
4.1 19 novembre 2020 Concaténation de types de chaîne

liens web

  • DefinatelyTyped : Collection d'interfaces TypeScript pour les frameworks JavaScript populaires

Preuve individuelle

  1. Version 4.1.3 . 15 décembre 2020 (consulté le 18 décembre 2020).
  2. Wiki ECMAScript. (N'est plus disponible en ligne.) Archivé de l' original le 22 mai 2008 ; consulté le 3 avril 2013 . Info: Le lien d'archive a été inséré automatiquement et n'a pas encore été vérifié. Veuillez vérifier le lien d'origine et d'archive conformément aux instructions , puis supprimez cet avis.  @1@ 2Modèle: Webachiv / IABot / wiki.ecmascript.org
  3. a b TypeScript. Récupéré le 3 avril 2013 (anglais, page d'accueil de TypeScript).
  4. Une introduction au système de modules de TypeScript, récupéré le 4 février 2014 (en anglais, article sur le système de modules de TypeScript).
  5. grunt-ts. Récupéré le 21 février 2014 .
  6. Plug-in TypeScript Maven. Récupéré le 21 février 2014 .
  7. Plugin TypeScript Gradle. Récupéré le 21 février 2014 .
  8. Personnel de l'IDG News Service: Microsoft augmente JavaScript pour un développement à grande échelle . Dans: InfoWorld . ( infoworld.com [consulté le 11 juillet 2018]).
  9. Annonce de TypeScript 1.0 . ( microsoft.com [consulté le 11 juillet 2018]).
  10. @ COPYRIGHT @: TypeScript: Premières impressions - Miguel de Icaza. Récupéré le 11 juillet 2018 .
  11. ^ Matt Baxter-Reynolds: Microsoft TypeScript: Le père de C # peut-il nous sauver de la tyrannie de JavaScript? | ZDNet . Dans: ZDNet . ( zdnet.com [consulté le 11 juillet 2018]).
  12. Julia Schmidt: support TypeScript pour Eclipse. Récupéré le 11 juillet 2018 (allemand).
  13. TypeScript . Dans: Plugins, bundles et produits Eclipse - Eclipse Marketplace . ( eclipse.org [consulté le 11 juillet 2018]).
  14. Tapez Strong / atom-typescript. Récupéré le 11 juillet 2018 .
  15. TypeScript. Récupéré le 11 juillet 2018 .
  16. Travailler avec TypeScript dans Visual Studio 2012 . Dans: Dr. Dobb's . ( drdobbs.com [consulté le 11 juillet 2018]).
  17. ^ Nouveau compilateur et passage à GitHub . ( msdn.com [consulté le 11 juillet 2018]).
  18. TypeScript, le JavaScript de Microsoft pour les grandes applications, atteint la version 2.0 . Dans: Ars Technica . ( arstechnica.com [consulté le 11 juillet 2018]).
  19. Microsoft Previews Nouveau langage de programmation de type JavaScript TypeScript. Dans: TechCrunch. Récupéré le 18 mai 2020 (anglais américain).
  20. ^ Angulaire. Récupéré le 18 mai 2020 .
  21. JavaScript tapé à n'importe quelle échelle. Récupéré le 18 mai 2020 .
  22. Annonce de TypeScript 0.9. 18 juin 2013, récupéré le 18 mai 2020 (anglais américain).
  23. Manuel - Génériques. Récupéré le 18 mai 2020 .
  24. ^ Scott Hanselman: Qu'est-ce que TypeScript et pourquoi avec Anders Hejlsberg. Récupéré le 18 mai 2020 .
  25. kexugit: TypeScript: Développement JavaScript à l'échelle de l'application. Récupéré le 18 mai 2020 (anglais américain).
  26. Annonce de TypeScript 0.9. 18 juin 2013, récupéré le 19 janvier 2021 (anglais américain).
  27. https://www.typescriptlang.org/docs/handbook/release-notes/typescript-1-7.html consulté le 1er août 2019
  28. Annonce de TypeScript 3.0. 30 juillet 2018, consulté le 19 janvier 2021 (anglais américain).
  29. Annonce de TypeScript 3.5. 29 mai 2019, consulté le 19 janvier 2021 (anglais américain).
  30. Annonce de TypeScript 3.6. 28 août 2019, consulté le 19 janvier 2021 (anglais américain).
  31. Annonce de TypeScript 3.7. 5 novembre 2019, consulté le 2 mars 2020 (anglais américain).
  32. Annonce de TypeScript 3.8. 20 février 2020, consulté le 2 mars 2020 (anglais américain).
  33. Annonce de TypeScript 3.9. 12 mai 2020, récupéré le 14 mai 2020 (anglais américain).
  34. Annonce de TypeScript 4.0. 20 août 2020, consulté le 19 janvier 2021 (anglais américain).
  35. Annonce de TypeScript 4.1. 19 novembre 2020, consulté le 19 janvier 2021 (anglais américain).