コードは次のとおりです:
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
はありませんstyle
。HTMLElement
ただし、それを実装する拡張インターフェースを介してElementCSSInlineStyle
。
この型キャストは、すべてのが またはのいずれかElement
であるという点で型安全であり、HTMLElement
SVGElement
SVG 要素クラスはありません。