Séance 6-a : TypeScript

🎯 Objectifs

  • Comprendre les bases de TypeScript.

  • Ajouter du typage dans un projet Vue/Nuxt.

📖 Partie théorique

Pourquoi TypeScript ?

  • Superset de JavaScript avec typage statique.

    • Tout code JavaScript valide est aussi du TypeScript.

    • On peut progressivement ajouter du typage.

    • Pas besoin de tout réécrire.

  • Détection d’erreurs à la compilation.

  • Meilleure autocomplétion et documentation.

  • Adoption croissante dans l’écosystème JS.

  • Utilisé par des frameworks comme Angular, Vue, React.

Approche de TypeScript

TypeScript est un langage de programmation libre développé par Microsoft qui a pour but d'améliorer et de sécuriser la production de code JavaScript. Il s'agit d'un sur-ensemble syntaxique strict de JavaScript (c'est-à-dire que tout code JavaScript correct peut être utilisé avec TypeScript). Le code TypeScript est transcompilé en JavaScript et peut ainsi être interprété par n'importe quel navigateur web ou moteur JavaScript. (https://fr.wikipedia.org/wiki/TypeScript)

TypeScript permet un typage statique optionnel des variables et des fonctions, la création de classes et d'interfaces, l'import de modules, tout en conservant l'approche non-contraignante de JavaScript.

La documentation officielle est très complète : https://www.typescriptlang.org/

Types de base

Types primitifs

  • string

  • number

  • boolean

  • null

  • undefined

  • void

  • any

Exemples :

Types complexes

  • array : string[] ou Array<string>

  • tuple : [string, number]

  • enum : énumérations

  • object : { key: value }

Exemples :

Fonctions

Interfaces et types personnalisés

Utilisation

Le fichier de configuration tsconfig.json

TypeScript utilise un fichier tsconfig.json pour configurer le compilateur.

Exemple minimal :

Ajouter TypeScript à un projet Vue/Nuxt

Avec vuejs 3 et Nuxt 3 ou 4, TypeScript est nativement supporté. Il vous suffit de renommer les fichiers .js en .ts avec <script lang="ts"> pour les fichiers Vue.

Exemple dans un composant Vue :

Last updated