Skip to main content

Projekt-Setup

Worum geht es?

Typings sind Typbeschreibungen (.d.ts-Dateien und JSDoc-Kommentare), mit denen VS Code unsere DOCUMENTS-Skripte versteht, obwohl sie in reinem JavaScript geschrieben sind. VS Code nutzt dafür im Hintergrund den TypeScript-Sprachdienst. Das Ergebnis:

  • IntelliSense: Autovervollständigung für context, util, DocFile, FileResultset & Co. inklusive Parameterhilfe.
  • Doku direkt im Editor: Beim Hovern über eine Funktion erscheint ihre Beschreibung. Das spart den Blick in die Portalscripting-API-Doku.
  • Fehler vor dem Upload finden: Tippfehler in Methodennamen, falsche Parametertypen oder vergessene null-Prüfungen werden markiert, bevor das Skript auf dem Server landet.
  • Sichere Refactorings: "Umbenennen" (F2) und "Alle Verweise suchen" (Shift+F12) funktionieren projektweit.

Diese Seite zeigt, wie Typings in unserem Workspace eingerichtet sind und wie ihr sie in eigenen Skripten nutzt. Alle Beispiele stammen aus unserer Codebasis.

Projekt-Setup

Damit VS Code die Typings findet, braucht ein Workspace zwei Dinge: eine jsconfig.json im Root und den Ordner typings/ mit den .d.ts-Dateien. Beides legt die DOCUMENTS-Extension (vscode-documentsos) beim Einrichten des Projekts an.

jsconfig.json

Die jsconfig.json sagt VS Code, welche Dateien zum Projekt gehören und welche JavaScript-Version gilt. Unsere aktuelle Konfiguration:

{
  "compilerOptions": {
    // "checkJs": true,
    "target": "es2016",
    "lib": ["es2016", "scripthost"]
  },
  "include": [
    "node_modules/@types/**/*.d.ts",
    "src/**/*.js",
    "typings/**/*.d.ts"
  ]
}
  • include bindet unsere Skripte (src/) und alle Typings (typings/) ein. Nur was hier steht, kennt IntelliSense.
  • lib lässt bewusst dom weg. Sonst kollidieren die Browser-Klassen File und Document mit den gleichnamigen DOCUMENTS-Klassen.
  • target: es2016 schaltet Autovervollständigung für ES6-Features wie Map oder for...of frei. Achtung: Nicht alles davon unterstützt der DOCUMENTS-Server.
  • checkJs ist auskommentiert. VS Code zeigt also IntelliSense an, meldet aber keine Typfehler. Wie man die Prüfung gezielt einschaltet, steht unten.