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

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 4 minutes de lecture
  • Utilisez TypeScript lors de la création de modules JavaScript avec le fichier 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 du 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 du typescriptlang.org.

    Rôle requis : admin

    Pourquoi et quand exécuter cette tâche

    Suivez cette procédure pour mettre à jour les applications existantes qui n’ont pas été créées à l’aide d’un modèle TypeScript afin d’utiliser TypeScript dans les modules. À partir de la version 3.0, les applications prennent en charge l’utilisation de TypeScript dans les ServiceNow SDK modules JavaScript par défaut à l’aide des options de compilateur par défaut. Pour utiliser un fichier tsconfig.json avec des options personnalisées pour la transpilation de TypeScript en JavaScript pendant le processus de génération, configurez le paramètre tsconfigPath dans le fichier now.config.json . Si vous souhaitez utiliser une étape de transpilation personnalisée avant de créer l’application, configurez le paramètre modulePaths dans le fichier now.config.json .

    Procédure

    1. Dans , ouvrez le répertoire de votre application incluse dans Visual Studio Codele champ d’application.
    2. Ouvrez le fichier package.json de l’application et , 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"
        }
    3. Dans le répertoire src/server de votre application, ajoutez un fichier tsconfig.json qui définit les options de compilation de l’application.
      {
          "compilerOptions": {
              "rootDir": "./",
              "outDir": "../../dist/server",
              "module": "es2022",
              "target": "es2022",
              "moduleResolution": "bundler",
              "allowJs": true,
              "declaration": false,
              "sourceMap": false,
              "skipLibCheck": true,
              "allowImportingTsExtensions": true,
              "noEmit": true
          },
          "include": [
              "./**/*.ts",
              "../../@types/**/*.modules.d.ts"
          ],
          "exclude": [
              "**/*.now.ts"
          ]
      }
    4. Dans le fichier now.config.json de l’application, définissez le paramètre tsconfigPath sur l’emplacement du tsconfig.json pour les modules JavaScript. .
      {
        "scope": "x_snc_example_app",
        "scopeId": "2f8400eb07426110f736e28f69d3017a",   
        "name": "ExampleApp",
        "tsconfigPath": "./src/server/tsconfig.json"
        
      }
    5. Dans le répertoire src/server , ajoutez au moins un fichier .ts pour contenir le code du module.
      Pour plus d’informations sur la création de modules, reportez-vous à la section Créer et utiliser des modules JavaScript dans des applications avec le ServiceNow SDK.
    6. Compilez les fichiers TypeScript dans des modules JavaScript et créez votre application.
      1. À partir du répertoire de votre application, ouvrez un outil en ligne de commande sur votre système.
      2. Entrez la commande suivante :
        now-sdk 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 : admin

    Pourquoi et quand exécuter cette tâche

    Remarque :
    Vous pouvez télécharger des définitions de type pour la plupart des API, des includes de script et d’autres objets pouvant contenir des scripts à l’aide de la commande now-sdk dependencies . Pour plus d'informations, consultez Télécharger les dépendances du module et du script.

    Suivez cette procédure pour ajouter manuellement des définitions de types que les dépendances now-sdk ne téléchargent pas. Vous pouvez déclarer des modules directement dans l’application ServiceNow SDK pour accéder 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 , ouvrez le répertoire de votre application incluse dans Visual Studio Codele champ d’application.
    2. Dans votre application, ajoutez un fichier TypeScripe (.ts) pour les définitions de type.
    3. Dans votre fichier TypeScript, déclarez les 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 de l’API (sn_app_api) :
      declare module '@servicenow/glide/sn_app_api' {
      	class AppStoreAPI {
      		static canUpgradeAnyStoreApp(): boolean
      	}
      } 
      Cet exemple déclare un module permettant d’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()
      	}
      }
    4. Dans les modules JavaScript de votre application, importez les modules déclarés.
      Cet exemple importe le module déclaré pour l’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.