Verwenden von TypeScript mit dem ServiceNow SDK

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 2 Minuten Lesedauer
  • Verwenden Sie TypeScript, wenn Sie JavaScript-Module mit dem ServiceNow SDK erstellen.

    TypeScript verwendet statische Typisierung und Typanmerkungen, um Entwickler dabei zu unterstützen, Fehler beim Schreiben von Code in Visual Studio Codefrüher zu erkennen.

    Allgemeine Informationen zur Verwendung von TypeScript finden Sie in der TypeScript-Dokumentation auf der Website typescriptlang.org.

    Verwenden Sie TypeScript in Modulen

    Verwenden Sie TypeScript in Modulen, indem Sie in 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: admin

    Prozedur

    1. Fügen Sie im Basisverzeichnis Ihrer Anwendung eine tsconfig.json -Datei hinzu, die die Optionen zum Kompilieren der Anwendung definiert.
      Der Wert des outDir- Parameters muss mit dem Wert von „ moduleDir “ in der Datei „ package.json “ Ihrer Anwendung übereinstimmen. Standardmäßig ist „moduleDir“ auf srcfestgelegt.
      {
          "compilerOptions": {
             "outDir": "src",
             "rootDir": "src",
             "allowJs": true,
         },
         "include": ["./src/**/*"]
       }
    2. Nehmen Sie in der Datei „ package.json “ der Anwendung die folgenden Änderungen vor.
      1. Fügen Sie im Objekt devDependencies das TypeScript-Paket und die Version hinzu.
        Es wird empfohlen, die neueste Version von TypeScript zu verwenden.
        "devDependencies": {
                "@servicenow/glide": "25.0.0-alpha.10",
                "eslint": "8.50.0",
                "eslint-plugin-n":"16.2.0",
                "typescript": "5.3.3"
            }
      2. Fügen Sie im Objekt „ scripts “ ein Build-Skript hinzu, das TypeScript-Module (.ts) in JavaScript (.js) zur Verwendung in der Instanz kompiliert.
        {
            "scripts": {
                "build": "tsc --build --clean && tsc --build && now-sdk build"
            }
        }
    3. 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:
        npm run build

    Fügen Sie Typdefinitionen für APIs hinzu

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

    Vorbereitungen

    Erforderliche Rolle: admin

    Warum und wann dieser Vorgang ausgeführt wird

    Deklarieren Sie Module direkt in der SDK-Anwendung ServiceNow, um den Zugriff auf die APIs für Typeahead-Unterstützung zu blockieren. Diese Module sind nicht im Anwendungspaket enthalten, können jedoch in einem Quellcodeverwaltungs-Repository für die Anwendung nachverfolgt und von Entwicklern gemeinsam genutzt werden.

    Prozedur

    1. Fügen Sie in Ihrem Anwendungsverzeichnis eine TypeScript-Datei (.ts) für Typdefinitionen hinzu.
    2. Deklarieren Sie in Ihrer TypeScript-Datei Module für APIs und skriptfähige Objekte.
      In diesem Beispiel wird ein Modul für eine API mit dem API-Namespace (sn_app_api) deklariert:
      declare module '@servicenow/glide/sn_app_api' {
      	class AppStoreAPI {
      		static canUpgradeAnyStoreApp(): boolean
      	}
      } 
      In diesem Beispiel wird ein Modul für den Zugriff auf Objekte deklariert, die in Skripteinbindungen definiert sind, wobei der Bereich der Skripteinbindung (x_1234_scope) verwendet wird:
      declare module '@servicenow/glide/x_1234_scope' {
      	class MyLogItemClass {
      		myLogFunction()
      	}
      }
    3. Importieren Sie die deklarierten Module in JavaScript-Modulen in Ihrer Anwendung.
      In diesem Beispiel wird das deklarierte Modul für die App StoreAPI 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 MyLogItemClass-Objekt 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 selben Anwendungsbereich zugreifen.