Использование getter & setters с защитой типа в setter - PullRequest
0 голосов
/ 27 июня 2018

Я хотел бы добавить геттер и сеттер в свой класс. Однако установщик должен получить querySelector, но получатель возвращает новый тип pageSections.

Моя проблема заключается в том, что метод get и метод set должны иметь одинаковые аргумент / возвращаемое значение, но я хочу установить защиту типа в метод set. pageSections определен в файле определения типа и работает нормально.

// in the code …
this.parent(this.closest('page-sections'))

// in the class
PageSection {
  private _parent: pageSections = undefined

  /**
   * @method setter parent
   * @description set the parent property
   */
  set parent (parent: pageSections) {
    if (this._parent === parent) return
    if (typeof parent.current === undefined) return // this validates it being a pageSections for now
    this._parent = parent
  }

  /**
   * @method getter parent
   * @description get the parent property
   */
  get parent (): pageSections {
    return this._parent
  }
}  

Чего мне не хватает? Как это сделать?

1 Ответ

0 голосов
/ 27 июня 2018

Вы не можете этого сделать, и почему это должно быть возможно?

Вы можете:

  • создать другой метод (setParent (q: querySelector))
  • создайте конвертер, который разрабатывает querySelector и возвращает pageSections для установки с помощью «set parent»

Вы можете найти здесь проблему (все еще обсуждается с 2015 года).

...