wake-up-neo.net

Wie deklariere ich eine benutzerdefinierte Klasse in Google-Skripts?

Ich möchte eine Klasse in meinem Skript erstellen.

Die Skriptsprache von Google Apps basiert auf JavaScript. Ich habe ein Beispiel aus einem JavaScript-Handbuch genommen:

class Polygon {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }
}

Dies funktioniert jedoch nicht. Ich bekomme diese Fehlermeldung:

Missing ; before statement. (line 1, file "Code")

Bedeutet das, dass es nicht möglich ist, neue Klassen in Google-Skripts zu erstellen?

Oder soll ich eine andere Syntax verwenden?

16
Ada Lovelace

Historisch ist Javascript eine "klassenlose" Sprache, Klassen sind eine neuere Funktion, die noch nicht weit verbreitet ist und anscheinend noch nicht von Apps Script unterstützt wird.

Hier ein Beispiel, wie Sie das Klassenverhalten in Apps Script nachahmen können:

var Polygon = function(height, width){
  this.height = height;
  this.width = width;

  this.logDimension = function(){
    Logger.log(this.height);
    Logger.log(this.width);
  }
};

function testPoly(){
  var poly1 = new Polygon(1,2);
  var poly2 = new Polygon(3,4);

  Logger.log(poly1);
  Logger.log(poly2);
  poly2.logDimension();
}
26
Cameron Roberts

TypeScript kann jetzt mit GAS verwendet werden. Laden Sie die Skriptdateien mit clasp herunter und konvertieren Sie sie in TypeScript, indem Sie die Dateisuffixe in .ts ändern. Weitere Informationen finden Sie unter http://developers.google.com/apps-script/guides/TypeScript. Sobald dies erledigt ist, kann class verwendet werden.

Ein Beispiel für die Verwendung von TypeScript zur Implementierung der benutzerdefinierten Funktionen von Google Sheets finden Sie unter https://github.com/november-yankee/science-test-grading .

2
November Yankee