首页 > 解决方案 > 如何让 Typescript 识别使用 Lit-Element 中的“get properties()”方法创建的属性?

问题描述

使用 LitElement 创建组件时,我们可以使用@property装饰器或静态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 识别使用 Lit-Element 中的“get properties ()”方法创建的属性?

为什么?

我希望能够通过使用扩展运算符来避免重复。像这样的东西:


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

export class MyClass extends LitElement {

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

标签: typescriptlit-element

解决方案


推荐阅读