L’utilisation de TypeScript dans les modules JavaScript avec le ServiceNow SDK

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • Utilisez TypeScript lors de la création de modules JavaScript avec le .ServiceNow SDK

    TypeScript utilise la saisie statique et les annotations de type pour aider les développeurs à détecter les erreurs plus tôt lors de l’écriture de code dans Visual Studio Code.

    Pour des informations générales sur l’utilisation de TypeScript, consultez la documentation TypeScript sur le site Web de 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 des instructions d’installation, consultez Télécharger TypeScript sur le site Web typescriptlang.org.

    Rôle requis : admin

    Pourquoi et quand exécuter cette tâche

    Avec la ServiceNow SDK version 2.0.1 ou ultérieure, vous pouvez configurer des applications pour utiliser TypeScript dans les modules JavaScript par défaut avec le paramètre template sur les 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 de package.json de l’application, apportez les changements suivants.
      1. Dans l’objet devDependencies , ajoutez le package et la version TypeScript.
        "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 génération pour compiler les modules TypeScript (.ts) vers JavaScript (.js) à utiliser 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/server",
              "outDir": "dist/server",
              "module": "nodenext",
              "target": "es2021",
              "moduleResolution": "nodenext",
          },
          "include": ["src/**/*.ts"],
          "exclude": ["node_modules", "src/fluent/**"],
          "references": []
      }
    3. Dans le fichier de now.config.json de l’application, définissez le paramètre modulePaths pour mapper les fichiers sources TypeScript aux modules de sortie en fonction de votre tsconfig.json.
      {
        "scope": "x_snc_example_app",
        "scopeId": "2f8400eb07426110f736e28f69d3017a",   
        "name": "ExampleApp"
        "modulePaths": {
            "src/server/*.ts": "dist/server/*.js"
         }
      }
    4. Dans le répertoire src/server , ajoutez au moins un fichier .ts pour contenir le code du module.
    5. Compilez les fichiers TypeScript dans des 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

    Obtenir la prise en charge de la suggestion automatique pour les API et les objets scriptables en dehors des API Glide.

    Avant de commencer

    Rôle requis : admin

    Pourquoi et quand exécuter cette tâche

    Déclarez des modules directement dans l’application ServiceNow SDK pour obtenir un accès aux API pour la prise en charge de la suggestion automatique. Ces modules ne sont pas empaquetés dans le package d’application, mais ils peuvent être suivis dans un référentiel de contrôle de source pour l’application et partagés entre 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 à l’aide de 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.