При создании Компонента с 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},
};
}
}