'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