Utilisation de TypeScript dans les modules JavaScript avec l’option ServiceNow SDK

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 3 minutes de lecture
  • Utilisez TypeScript lors de la création de modules JavaScript avec l’extension ServiceNow SDK.

    TypeScript utilise une saisie statique et des annotations de type pour permettre aux développeurs de détecter les erreurs plus tôt lors de l’écriture de code au format Visual Studio Code.

    Pour obtenir des informations générales sur l’utilisation de TypeScript, consultez la documentation TypeScript sur le site Web typescriptlang.org.

    Utiliser TypeScript dans les modules JavaScript

    Utilisez TypeScript dans les modules JavaScript en ajoutant la prise en charge de TypeScript dans votre application.

    Avant de commencer

    Installez TypeScript version 4.8.4 ou ultérieure. Pour obtenir les instructions d’installation, reportez-vous à la rubrique Télécharger TypeScript sur le site Web typescriptlang.org.

    Rôle requis : administrateur

    Pourquoi et quand exécuter cette tâche

    Avec la version 2.0.1 ou ultérieure ServiceNow SDK , vous pouvez créer ou convertir des applications configurées pour utiliser TypeScript à l’aide du paramètre template des commandes now-sdk create et now-sdk convert . Pour plus d'informations, consultez ServiceNow SDK CLI. Suivez cette procédure pour mettre à jour les applications existantes afin d’utiliser TypeScript dans les modules.

    Procédure

    1. Dans le fichier package.json de l’application, apportez les modifications suivantes.
      1. Dans l’objet devDependencies , ajoutez le package TypeScript et sa version.
        "devDependencies": {
            "typescript": "<version>",
            "@servicenow/sdk": "2.0.0",
            "@servicenow/glide": "26.0.1",
            "eslint": "8.50.0",
            "@servicenow/eslint-plugin-sdk-app-plugin": "2.0.0"
          }
      2. Dans l’objet scripts , mettez à jour le script de build pour compiler les modules TypeScript (.ts) en JavaScript (.js) en vue de leur utilisation sur l’instance.
        {
            "scripts": {
                "build": "tsc -b && now-sdk build",
            }
        }
    2. Dans le répertoire de base de votre application, ajoutez un fichier tsconfig.json qui définit les options de compilation de l’application.
      {
          "compilerOptions": {
              "rootDir": "src",
              "outDir": "dist/src",
              "module": "nodenext",
              "target": "es2021",
              "moduleResolution": "nodenext",
          },
          "include": ["src/**/*.ts"],
          "exclude": ["node_modules", "src/fluent/**"],
          "references": []
      }
    3. Dans le fichier now.config.json de l’application, définissez le paramètre transpiledSourceDir sur la même valeur que le paramètre outDir dans votre fichier tsconfig.json .
      {
        "transpiledSourceDir": "dist/src",
        "scope": "x_snc_example_app",
        "scopeId": "2f8400eb07426110f736e28f69d3017a"
      }
    4. Dans le répertoire src/server , ajoutez au moins un fichier .ts contenant le code du module.
    5. Compilez des fichiers TypeScript en modules JavaScript et créez votre application.
      1. À partir de votre répertoire d’application, ouvrez un outil en ligne de commande sur votre système.
      2. Entrez la commande suivante :
        npm run build

    Ajouter des définitions de type pour les API

    Bénéficiez de la prise en charge de la suggestion automatique pour les API et les objets pouvant contenir des scripts en dehors des API Glide.

    Avant de commencer

    Rôle requis : administrateur

    Pourquoi et quand exécuter cette tâche

    Déclarez des modules directement dans l’application ServiceNow SDK pour bloquer l’accès aux API pour la prise en charge de la suggestion automatique. Ces modules ne sont pas intégrés dans le package de l’application, mais ils peuvent être suivis dans un référentiel de contrôle de source pour l’application et partagés entre les développeurs.

    Procédure

    1. Dans votre répertoire d’application, ajoutez un fichier TypeScripe (.ts) pour les définitions de type.
    2. Dans votre fichier TypeScript, déclarez des modules pour les API et les objets pouvant contenir des scripts.
      Cet exemple déclare un module pour une API utilisant l’espace de noms API (sn_app_api) :
      declare module '@servicenow/glide/sn_app_api' {
      	class AppStoreAPI {
      		static canUpgradeAnyStoreApp(): boolean
      	}
      } 
      Cet exemple déclare un module pour accéder aux objets définis dans les includes de script à l’aide de la portée de l’include de script (x_1234_scope) :
      declare module '@servicenow/glide/x_1234_scope' {
      	class MyLogItemClass {
      		myLogFunction()
      	}
      }
    3. Dans les modules JavaScript de votre application, importez les modules déclarés.
      Cet exemple importe le module déclaré pour AppStoreAPI.
      import { gs } from '@servicenow/glide'
      import { AppStoreAPI } from '@servicenow/glide/sn_app_api'
      
      export const canUpgradeStoreApp = function () {
      	var canUpgrade = AppStoreAPI.canUpgradeAnyStoreApp()
      	if (canUpgrade) {
      		gs.addInfoMessage(`You can upgrade store apps!`)
      	} else {
      		gs.addInfoMessage(`You cannot upgrade store apps!`)
      	}
      }
      Cet exemple importe le module déclaré pour l’objet MyLogItemClass.
      import { MyLogItemClass } from '@servicenow/glide/x_1234_scope'
      
      export const myLogFunction = function (status) {
      	const myLogItem = new MyLogItemClass()
      	myLogItem.myLogFunction(status)
      }
      Remarque :
      Les modules ne peuvent accéder qu’aux objets pouvant contenir des scripts globaux ou aux objets pouvant contenir des scripts dans le même périmètre de l’application.