'How to declare Class fields in Google App Script using javascript
I'm trying to create a class
with some fields on Google Scripts. I can't even save the file. From what I understand of this SO answer, I'm using the correct syntac for class fields.
V8 runtime is enabled.
The error:
Syntax error: ParseError: Unexpected token = line: 5 file: Airtable_Class.gs
Line 5 is: foo = "bar";
Here's the whole code:
class FieldsTest{
foo = "bar";
}
Solution 1:[1]
This is a known issue. Add a star (? on top left) to the issue, if you want this to be implemented.
https://issuetracker.google.com/issues/195752915
According to the tracker, it is supported, but it is blocked by the parser.
Solution 2:[2]
I was trying around and was able to define the class setting it up like this:
class Test{
constructor(foo){
foo = "bar";
}
}
I was checking the documentation and it suggest to build up classes like the ones shown in the reference.
Solution 3:[3]
Although it seems that Google Apps Script doesn't support static class fields, it does support static methods/getters/setters, so you can do this:
class X {
// ?? static getters & setters
static get a(){ return this._a || 0 } // this === X
static set a(value){ this._a = value } // this === X
}
then you can get/set X.a
as usual:
X.a // get: 0.0
X.a = 3 // set: 3.0
X.a // get: 3.0
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | TheMaster |
Solution 2 | Gabriel Carballo |
Solution 3 | lochiwei |