Как объявить пользовательский класс в сценариях google?
Я хочу создать класс внутри моего script.
Язык Google Apps Script основан на javaScript, поэтому я взял пример из руководства по javaScript:
class Polygon {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
Однако это не работает. Я получаю это сообщение об ошибке:
Missing ; before statement. (line 1, file "Code")
Означает ли это, что невозможно создавать новые классы в сценариях Google?
Или существует другой синтаксис, который я должен использовать?
Ответы
Ответ 1
Исторически Javascript - это "бесклассовый" язык, классы - это более новая функция, которая еще не получила широкого распространения и, по-видимому, пока не поддерживается приложениями Script.
Вот пример того, как вы можете имитировать поведение класса в приложениях 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();
}
Ответ 2
TypeScript теперь можно использовать с GAS. Чтобы использовать его, загрузите файлы сценариев, используя clasp
затем преобразуйте их в TypeScript, изменив суффиксы файлов на .ts
. Дополнительную информацию можно найти по адресу https://developers.google.com/apps-script/guides/typescript. Как только это будет сделано, class
может быть использован.
Пример TypeScript, который используется для реализации пользовательских функций Google Sheets, можно найти по адресу https://github.com/november-yankee/science-test-grading.