Skip to main content

Typescript

Le coding style employé pour les projets :

Explication des choix de codage

Le fichier tslint.json (de la page parente à celle-ci) contient l'ensemble des règles de codage pour les projets en Typescript.

Sur cette page on décrira une partie de ce que signifient les règles que l'on a choisi.

arrow-return-shorthand

Est à true dans notre configuration. Cela permet d'avoir des fonctions écrites de cette manière

    () => aValue

Plutôt que de devoir écrire

    () =>  { return aValue; }

eofline

Cette règle force la présence d'un saut de ligne en fin de fichier. Cela permet d'éviter des bugs insidieux qui fusionnerait deux instructions javascript qui ne devraient pas l'être.

no-console

Nous définissons cette règle à true de manière à s'assurer de ne pas avoir de console.log qui jonchent le code. Cela pour deux raisons :

  • s'assurer que ce qui doit être loggué l'est de la bonne façon (logs envoyés à un serveur)
  • la console est vraiment faite pour le développement, il est important de ne plus en avoir après.

no-inferrable-types

On active cette règle pour rendre le code plus lisible. Activée, cette règle permet de lever des warning lorsque on explicite le type d'une variable alors qu'on l'initialise avec une valeur de type number, string ou boolean.

quotemark

Ici on utilise la valeur single pour indiquer que les string literals (les assignations de chaînes de caractères) doivent utiliser les guillements simples.

semicolon (avec l'option "always")

On oblige la présence d'un point-virgule après chaque instruction, systématiquement. Pour une raison simple : la compilation. On s'assure ainsi que nos instructions font toujours ce pour quoi on les a écrites.

use-lifecycle-interface

Nous avons mis cette règle à true.

Cela permet de s'assurer que, lorsqu'une classe implémente une interface de lifecycle, la méthode requise soit actuellement implémentée.

Cela évite d'avoir des implements OnChanges sans ngOnChanges d'implémenter.

On obtient alors un code davantage épuré et cohérent (les interfaces étant forcément implémentées lorsque que le mot clé implements est utilisé).