web-dev-qa-db-ja.com

DOM nativeElementのTypeScript定義はありますか?

Angular2コンポーネントをテストしていて、コンポーネントのnativeElementのプロパティをアサートしたいのですが、TypeScript定義がありません。私のテストは次のようになります。

_beforeEach( () => {
    myComponentFixture = TestBed.createComponent(MyComponent);
    myComponent = myComponentFixture.componentInstance;
});

it('Should display something', fakeAsync(() => {
    myComponentFixture.detectChanges();

    expect(myComponentFixture.nativeElement.textContent).toContain('something');
}));
_

問題は、_nativeElement._と入力した後、nativeElementの入力がないと思うため、IntelliSenseがないことです。 innerHtml、idなど、チェックしたいプロパティが他にもあります。このテスト例は意味がないかもしれませんが、myComponentFixture.debugElement.query(By.css('#myElement')).nativeElementを使用して特定のDOM要素のプロパティをテストできます。

13
Dainius Lukša

キャストする必要があります。マルチプラットフォーム戦略のため、彼らはnativeElementに特定のタイプを指定しませんでした。

(myComponentFixture.nativeElement as HTMLElement)....
21

ElementRefはAngularコアパッケージから使用できます:

import { ElementRef } from '@angular/core';

1
JaysQubeXon