Afin de faciliter le développement des surcharges, le polymorphisme a été introduit dans les scripts.
Pour être dans les meilleures conditions, le Code Behind a été introduit pour que le projet ne comporte plus que des classes TypeScript.
Au sens Divalto One, les fichiers de type Script deviennent obsolètes et nous ne manipulons que des librairies.
Pour être surchargeable, les classes doivent être préfixées par les mots clé : export default
.
C'est le moyen de rendre votre classe visible aux autres.
Spécialisation
Dans ce contexte, la librairie standard n’est plus dupliquée, elle ne contiendra que le code surchargé.
Lorsqu’on veut surcharger une méthode de la librairie de base, il suffit de commencer à saisir son nom, l’autocomplétion facilitera la sélection et la génération de la méthode surchargée.
La majorité des méthodes sont asynchrones, pensez à définir votre méthode étant également asynchrone avec le mot clé async
Pour appeler le traitement de base d’une méthode, il suffit de l’appeler avec le mot clé super
.
La majorité des méthodes sont asynchrones, pensez à utiliser le mot clé await
pour attendre la fin du traitement de base avant le traitement spécifique.
Vous avez entièrement le contrôle sur le moment auquel le traitement de base sera exécuté. Vous avez la possibilité d’exécuter du code avant ou après le traitement de base, ou décider de ne pas l’exécuter du tout.
Import de librairies
Dans les versions précédentes, pour pouvoir utiliser une librairie, il fallait appeler avec le service $library
const helper = await $library.getLibraryAsync('helper'); helper.callMe();
Dans cette nouvelle version, il suffit d’utiliser la même mécanique que pour l’import de la classe standard qu’on souhaite surcharger
import helperClass from '@Standard/Default/helper.scriptlibrary'; export default class mylib { async callMeAsync() { const helper = new helperClass(); helper.callMe(); } }
Importer la bonne version de librairie
Rappel, lorsqu’un fichier de configuration est demandé au runtime, la version qui sera finalement chargée suit l’ordre de priorité suivante
Fichier dans l’espace du projet selon le DeviceType
Fichier dans l’espace du projet dans Common
Fichier dans l’espace standard selon le DeviceType
Fichier dans l’espace standard dans Common
L’import de librairie décloisonne ces niveaux en permettant de cibler la bonne librairie.
Le format de l’import est défini comme suit
import libClass from '@Space/DeviceType/libName.scriptlibrary';
Ainsi, nous pouvons avoir par exemple les déclinaisons suivantes
import libClassFromStandardCommon from '@Standard/Common/libName.scriptlibrary'; import libClassFromStandardDefault from '@Standard/Default/libName.scriptlibrary'; import libClassFromStandardExtranet from '@Standard/extranet/libName.scriptlibrary'; import libClassFromProjectCommon from '@Project/Common/libName.scriptlibrary'; import libClassFromProjectDefault from '@Project/Default/libName.scriptlibrary'; import libClassFromProjectExtranet from '@Project/extranet/libName.scriptlibrary';
Pour importer une librairie tout en respectant l’ordre de priorité, il suffit de donner un chemin relatif
import libClass from './libName.scriptlibrary';