Annotations

Annotations

> LeekScript

Actuellement, il existe 7 annotations. Celles-ci peuvent être utilisées devant une fonction ou une méthode pour indiquer une information supplémentaire. Elles s'appliquent aussi aux variables locales, aux variables globales et aux classes. Dans l'éditeur, la documentation de chaque annotation s'affiche au survol.

Comment utiliser les annotations ?

Pour utiliser une annotation, vous pouvez écrire :

ou

Les annotations peuvent aussi être cumulées :

Les annotations existantes

@deprecated

Une fonction ou méthode annotée @deprecated affiche un avertissement à la compilation lorsqu'elle est appelée. Cela indique que la fonction ne doit plus être utilisée et qu'elle sera supprimée plus tard.

Par exemple :

@todo

Une fonction ou méthode annotée @todo insère un avertissement de type todo à la compilation pour indiquer qu'elle n'est pas complète.

@unused

Une fonction ou méthode annotée @unused n'émettra pas d'avertissement si elle n'est pas utilisée. Ceci est particulièrement utile en mode strict si la fonction est implémentée mais que le code ne l'appelle pas.

Par exemple :

À noter : préfixer un nom par _ (par exemple var _resultat) supprime déjà l'avertissement « non utilisé », sans annotation.

@nodiscard

Une fonction ou méthode annotée @nodiscard affichera un avertissement si sa valeur de retour n'est pas utilisée.

@pure

Actuellement, @pure a le même effet que @nodiscard. Cependant, @pure implique plus de choses :

Une fonction pure ne doit pas muter l'état et ne doit pas avoir d'effets de bord. C'est-à-dire qu'elle ne doit pas modifier de variables en dehors de son scope, et doit être déterministe (pas de random).

@override

Une méthode annotée @override indique au développeur qu'elle change l'implémentation d'une méthode de la classe parente.

Par exemple :

@tailrec

Une fonction ou méthode annotée de @tailrec indique qu'elle est tail recursive : cela signifie que cette fonction est récursive et que l'appel récursif est la dernière instruction de la fonction.

Cette annotation peut être utile pour le compilateur mais n'est actuellement jamais utilisée.