web-dev-qa-db-fra.com

Comment déclarer une classe personnalisée dans les scripts google?

Je veux créer une classe dans mon script.

Le langage de script de Google Apps est basé sur javaScript. J'ai donc pris un exemple d'un manuel javaScript:

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

Cependant, cela ne fonctionne pas. Je reçois ce message d'erreur:

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

Cela signifie-t-il qu'il n'est pas possible de créer de nouvelles classes dans les scripts Google?

Ou y a-t-il une syntaxe différente que je suis supposé utiliser?

16
Ada Lovelace

Historiquement, Javascript est un langage "sans classes", les classes sont une fonctionnalité plus récente qui n'a pas encore été largement adoptée et qui, apparemment, ne sont pas encore prises en charge par Apps Script.

Voici un exemple de la manière dont vous pouvez imiter le comportement d'une classe dans Apps Script:

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 peut maintenant être utilisé avec GAS. Pour l'utiliser, téléchargez les fichiers de script à l'aide de clasp, puis convertissez-les en TypeScript en remplaçant les suffixes du fichier par .ts. Pour plus d'informations, consultez la page developers.google.com/apps-script/guides/TypeScript. Une fois que cela est fait, class peut être utilisé.

Vous trouverez un exemple de typeScript utilisé pour implémenter les fonctions personnalisées de Google Sheets à l'adresse https://github.com/november-yankee/science-test-grading .

2
November Yankee