Verwendung von TypeScript in JavaScript-Modulen mit ServiceNow SDK

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 3 Minuten Lesedauer
  • Verwenden Sie TypeScript, wenn Sie JavaScript-Module mit erstellen ServiceNow SDK.

    Typescript verwendet statische Eingabe und Typanmerkungen, um Entwickler zu unterstützen, die beim Schreiben von Code früher Fehler erkennen Visual Studio Code.

    Allgemeine Informationen zur Verwendung von TypeScript finden Sie unter Typescript-Dokumentation Auf der Website typescriptlang.org.

    Verwenden Sie TypeScript in JavaScript-Modulen

    Verwenden Sie TypeScript in JavaScript-Modulen, indem Sie Ihrer Anwendung Unterstützung für TypeScript hinzufügen.

    Vorbereitungen

    Installieren Sie TypeScript Version 4.8.4 oder höher. Installationsanweisungen finden Sie unter TypeScript herunterladen Auf der Website typescriptlang.org.

    Erforderliche Rolle: Administrator

    Warum und wann dieser Vorgang ausgeführt wird

    Führen Sie dieses Verfahren aus, um vorhandene Anwendungen, die nicht mit einer TypeScript-Vorlage erstellt wurden, für die Verwendung von TypeScript in Modulen zu aktualisieren . Beginnend mit ServiceNow SDKVersion 3,0, Anwendungsunterstützung mit TypeScript in JavaScript-Modulen standardmäßig mit standardmäßigen Compiler-Optionen. Zur Verwendung von Tsconfig.JSON Datei mit anwenderdefinierten Optionen für die Übertragung von TypeScript in JavaScript während des Build-Prozesses konfigurieren TsconfigPath Parameter in Now.config.JSON Datei. Wenn Sie vor dem Erstellen der Anwendung einen anwenderdefinierten Transpilationsschritt verwenden möchten, konfigurieren Sie ModulePaths Parameter in Now.config.JSON Datei.

    Prozedur

    1. In Visual Studio Code, Öffnen Sie Ihr bereichsbezogenes Anwendungsverzeichnis.
    2. Öffnen Sie die Anwendung Package.JSON Datei und In DevenAbhängigkeiten Objekt, fügen Sie das TypeScript-Paket und die Version hinzu .
      "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. In Ihrer Anwendung src/Server Verzeichnis, fügen Sie ein hinzu Tsconfig.JSON Datei, die die Optionen zum Kompilieren der Anwendung definiert.
      {
          "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. In der Anwendung Now.config.JSON Datei, legen Sie fest TsconfigPath Parameter bis Der Standort von Tsconfig.JSON Für JavaScript-Module. .
      {
        "scope": "x_snc_example_app",
        "scopeId": "2f8400eb07426110f736e28f69d3017a",   
        "name": "ExampleApp",
        "tsconfigPath": "./src/server/tsconfig.json"
        
      }
    5. In src/Server Verzeichnis, fügen Sie mindestens eines hinzu .TS Datei, die Modulcode enthalten soll.
      Informationen zum Erstellen von Modulen finden Sie unter Erstellen und verwenden Sie JavaScript-Module in Anwendungen mit ServiceNow SDK.
    6. Kompilieren Sie TypeScript-Dateien in JavaScript-Modulen, und erstellen Sie Ihre Anwendung.
      1. Öffnen Sie in Ihrem Anwendungsverzeichnis ein Befehlszeilentool auf Ihrem System.
      2. Geben Sie den folgenden Befehl ein:
        now-sdk build

    Fügen Sie Typdefinitionen für APIs hinzu

    Erhalten Sie Typahead-Unterstützung für APIs und skriptfähige Objekte außerhalb von Glide-APIs.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Warum und wann dieser Vorgang ausgeführt wird

    Hinweis:
    Sie können Typdefinitionen für die meisten APIs, Skripteinbindungen und andere skriptfähige Objekte mit herunterladen Now-sdk-Abhängigkeiten Befehl. Weitere Informationen finden Sie unter Herunterladen Modul und Skriptabhängigkeiten.

    Führen Sie dieses Verfahren aus, um Typdefinitionen manuell hinzuzufügen, die Now-sdk-Abhängigkeiten Wird nicht heruntergeladen. Sie können Module direkt in deklarieren ServiceNow SDKAnwendung zum Stub des Zugriffs auf die APIs für Vorauseingabe-Support. Diese Module sind nicht im Anwendungspaket enthalten, können jedoch in einem Quellsteuerungs-Repository für die Anwendung nachverfolgt und von Entwicklern freigegeben werden.

    Prozedur

    1. In Visual Studio Code, Öffnen Sie Ihr bereichsbezogenes Anwendungsverzeichnis.
    2. Fügen Sie in Ihrer Anwendung ein TypeScripe hinzu ( .TS ) Datei für Typdefinitionen.
    3. Deklarieren Sie in Ihrer TypeScript-Datei Module für APIs und skriptfähige Objekte.
      Dieses Beispiel deklariert ein Modul für eine API mithilfe des API-Namespace ( sn_App_api ):
      declare module '@servicenow/glide/sn_app_api' {
      	class AppStoreAPI {
      		static canUpgradeAnyStoreApp(): boolean
      	}
      } 
      Dieses Beispiel deklariert ein Modul für den Zugriff auf Objekte, die in Skripteinbindungen definiert sind, mithilfe des Umfangs der Skripteinbindung ( X_1234_scope ):
      declare module '@servicenow/glide/x_1234_scope' {
      	class MyLogItemClass {
      		myLogFunction()
      	}
      }
    4. Importieren Sie in JavaScript-Module in Ihrer Anwendung die deklarierten Module.
      In diesem Beispiel wird das deklarierte Modul für die AppStoreAPI importiert.
      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!`)
      	}
      }
      In diesem Beispiel wird das deklarierte Modul für das Objekt „MyLogItemClass“ importiert.
      import { MyLogItemClass } from '@servicenow/glide/x_1234_scope'
      
      export const myLogFunction = function (status) {
      	const myLogItem = new MyLogItemClass()
      	myLogItem.myLogFunction(status)
      }
      Hinweis:
      Module können nur auf globale skriptfähige Objekte oder skriptfähige Objekte im gleichen Anwendungsbereich zugreifen.