TS2339: プロパティ 'style' はタイプ 'Element' に存在しません 質問する

TS2339: プロパティ 'style' はタイプ 'Element' に存在しません 質問する

コードは次のとおりです:

const test = Array.from(document.getElementsByClassName('mat-form-field-infix'));
test.forEach((element) => {
    element.outerHTML = '<div class="good-day-today" style="width: 0px;"></div>'; // Please note that this line works fine!
    element.style.padding = '10px';
    element.style.borderTop = '0';
});

コンパイル時に表示されるエラー:

src/app/ にエラーがあります/.component.ts(101,21): エラー TS2339: プロパティ 'style' はタイプ 'Element' に存在しません。src/app//.component.ts(102,21): エラー TS2339: プロパティ 'style' はタイプ 'Element' に存在しません。

どうすれば修正できますか?

部品を取り外したりArray.from...、 を使用したりfor of、 をfor in試したりしましたas anyが、上記の方法でしか実行できません。

ベストアンサー1

タイプキャストが必要です:

Array.from(document.getElementsByClassName('mat-form-field-infix') as HTMLCollectionOf<HTMLElement>)

それはgetElementsByClassName 返品のみ HTMLCollection<Element>であり、プロパティElementはありませんstyleHTMLElementただし、それを実装する拡張インターフェースを介してElementCSSInlineStyle

この型キャストは、すべてのが またはのいずれかElementであるという点で型安全であり、HTMLElementSVGElementSVG 要素クラスはありません。

おすすめ記事