Как заставить Typescript распознавать свойства, созданные с помощью метода "get properties ()" в Lit-Element? - PullRequest
0 голосов
/ 06 августа 2020

При создании Компонента с LitElement мы можем использовать декоратор @property или поле stati c properties, как описано в документации .

Я бы хотел использовать этот второй метод с Typescript, но он жалуется, так как поле не существует в классе.

export class MyClass extends LitElement {

  static get properties() { 
    return { 
      greeting: {type: String},
    };
  }

  public constructor() {
    super();
    this.greeting = "test"; // Error: Property 'greeting' does not exist on type 'MyClass'
  }
}

Typescript жалуется, что свойство приветствия не существует. Как я могу заставить Typescript распознавать свойства, созданные с помощью метода get properties () в Lit-Element?

Почему?

Я хочу избежать повторения с помощью оператора распространения. Примерно так:


const obj = {/** Long object definition **/};

export class MyClass extends LitElement {

  static get properties() { 
    return {
      ...obj,
      greeting: {type: String},
    };
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...