static getPropertyDescriptor(name, key, _options) {
        return {
            // tslint:disable-next-line:no-any no symbol in index
            get() {
                return this[key];
            },
            set(value) {
                const oldValue = this[name];
                this[key] = value;
                this._requestUpdate(name, oldValue);
            },
            configurable: true,
            enumerable: true
        };
    }
Returns a property descriptor to be defined on the given named property.
If no descriptor is returned, the property will not become an accessor.
For example,

  class MyElement extends LitElement {
    static getPropertyDescriptor(name, key, options) {
      const defaultDescriptor =
          super.getPropertyDescriptor(name, key, options);
      const setter = defaultDescriptor.set;
      return {
        get: defaultDescriptor.get,
        set(value) {
          setter.call(this, value);
          // custom action.
        },
        configurable: true,
        enumerable: true
      }
    }
  }

@nocollapse