it-swarm.com.ru

Как объявить пользовательский класс в скриптах Google?

Я хочу создать класс внутри моего скрипта.

Язык скриптов Google Apps основан на javaScript, поэтому я взял пример из руководства по javaScript:

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

Тем не менее, это не работает. Я получаю это сообщение об ошибке:

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

Означает ли это, что невозможно создавать новые классы в скриптах Google?

Или я должен использовать другой синтаксис?

16
Ada Lovelace

Исторически Javascript - это «бесклассовый» язык, классы - это более новая функция, которая еще не получила широкого распространения и, видимо, еще не поддерживается Apps Script.

Вот пример того, как вы можете имитировать поведение класса в 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 теперь можно использовать с GAS. Чтобы использовать его, загрузите файлы сценариев, используя clasp, затем преобразуйте их в TypeScript, изменив суффиксы файлов на .ts. Дополнительную информацию можно найти по адресу developers.google.com/apps-script/guides/TypeScript. Как только это будет сделано, можно использовать class.

Пример TypeScript, используемого для реализации пользовательских функций Google Sheets, можно найти по адресу https://github.com/november-yankee/science-test-grading .

2
November Yankee