Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在google脚本中声明自定义类?_Javascript_Class_Google Apps Script - Fatal编程技术网

Javascript 如何在google脚本中声明自定义类?

Javascript 如何在google脚本中声明自定义类?,javascript,class,google-apps-script,Javascript,Class,Google Apps Script,我想在脚本中创建一个类 Google Apps脚本语言基于javaScript,因此我从javaScript手册中选取了一个示例: class Polygon { constructor(height, width) { this.height = height; this.width = width; } } 然而,这不起作用。我收到以下错误消息: Missing ; before statement. (line 1, file "Code") 这是否意味着不可能

我想在脚本中创建一个类

Google Apps脚本语言基于javaScript,因此我从javaScript手册中选取了一个示例:

class Polygon {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }
}
然而,这不起作用。我收到以下错误消息:

Missing ; before statement. (line 1, file "Code")
这是否意味着不可能在google脚本中创建新类

或者我应该使用不同的语法吗?

更新:

截至2020年春季,谷歌推出了一个支持类的应用程序脚本。默认情况下,新脚本使用此运行时,而旧脚本必须转换。脚本编辑器中将显示一个提示,您可以从中转换脚本

原始答复:

从历史上看,Javascript是一种“无类”语言,类是一种尚未被广泛采用的较新功能,显然应用程序脚本还不支持它

下面是一个如何在应用程序脚本中模拟类行为的示例:

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();
}

TypeScript现在可以与GAS一起使用。要使用它,请使用
clasp
下载脚本文件,然后通过将文件后缀更改为
.ts
将其转换为TypeScript。有关更多信息,请访问。完成此操作后,就可以使用
class


用于实现GoogleSheets自定义函数的TypeScript示例可在中找到。

那么本例中的JSDoc如何?我无法使自动完成功能适用于此方法中定义的类。知道怎么做吗?更新:现在可以了。通过应用程序脚本库引用类时,它必须是
var x=new LibraryName.ClassName()什么是LibraryName?包含类的文件名?@AdaLovelace Antonio指的是将外部应用程序脚本项目作为库导入到另一个项目中的情况,在这种情况下,您在设置库名时指定了库名。如果该类是在同一个项目中定义的(不管.gs文件如何),则只需直接使用类名,如上面的示例所示。以下是关于库的文档:@CameronRoberts:由于使用了Chrome v8,您现在可以在Google应用程序脚本中使用类: