...
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é.
...
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
Bloc de code | ||
---|---|---|
| ||
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
Bloc de code | ||
---|---|---|
| ||
import helperClass from '@Standard/Default/helper';
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
Bloc de code | ||
---|---|---|
| ||
import libClass from '@Space/DeviceType/libName'; |
Ainsi, nous pouvons avoir par exemple les déclinaisons suivantes
Bloc de code | ||
---|---|---|
| ||
import libClassFromStandardCommon from '@Standard/Common/libName';
import libClassFromStandardDefault from '@Standard/Default/libName';
import libClassFromStandardExtranet from '@Standard/extranet/libName';
import libClassFromProjectCommon from '@Project/Common/libName';
import libClassFromProjectDefault from '@Project/Default/libName';
import libClassFromProjectExtranet from '@Project/extranet/libName'; |
Pour importer une librairie tout en respectant l’ordre de priorité, il faut utiliser l’espace @Global
sans préciser le DeviceType
Bloc de code | ||
---|---|---|
| ||
import libClass from '@Global/libName'; |