尽管我的代码可以工作(如下所示),但typescript正在抛出错误,表示“类型“htmlElement”上不存在属性“style”。
如您所见,我正在通过jquery获取元素&元素的id。

$(this.id).click(function () {
  this.style.display = 'none';
});

但这会导致以下错误:
`TS2339: Property 'style' does not exist on type 'HTMLElement'`.

我不确定什么是处理这个ts错误的正确方法。
有人能告诉我吗?
提前谢谢你。
更多代码,因为它是被请求的:
`/**
* Class represents a flash message
*/
export class FlashMessage {
flashMessageParentDivID:string;
iconID:string;
textID:string;
$: JQuery;

/**
 *
 * @param {string} flashMessageParentDiv - the string of the div's ID.
 */
constructor (flashMessageParentDiv: string, $: JQuery) {
    this.flashMessageParentDivID = "#"+flashMessageParentDiv;
    this.iconID = "#flash-message-icon",
    this.textID = "#flash-message-text";
    this.$ = $;
}

/**
 * Displays the passed in message with the appropriate status.
 * @param {string} message - the message we want to flash.
 * @param {string} status: either 'error' or 'success'
 */
showWithMessage = function (message: string, status: string) {
    //@todo: maybe throw an error if status does not equal error or   success.
    this.clearAndCreateFlashMessageInnerds();
    this.$(this.flashMessageParentDivID).removeAttr("class");
    this.$(this.flashMessageParentDivID).addClass(status);

    this.$(this.iconID).removeAttr("class");
    this.$(this.iconID).addClass("k-icon k-i-" + status);

    this.$(this.textID).text(message);
    this.$(this.flashMessageParentDivID).show();

    this.$(this.flashMessageParentDivID).click(function () {
        (<any>this).style.display = 'none';
    });
};

……`
typescript - 类型&#39;HTMLElement&#39;上不存在Typescript属性&#39;style&#39;-LMLPHP

最佳答案

在你的方法中使用这个

(<HTMLElement>document.querySelector('#yourDomElmentID')).style.display = 'none';

typescript - 类型&#39;HTMLElement&#39;上不存在Typescript属性&#39;style&#39;-LMLPHP
我在我的代码中成功地测试了你的代码及其编译。

07-26 02:02