frontend/오답노트

React18 + typescript : Argument of type 'HTMLElement | null' is not assignable to parameter of type 'Element | DocumentFragment'. Type 'null' is not assignable to type 'Element | DocumentFragment'

NERD는 한글로 류호진 2022. 4. 10. 18:09

문제 : Argument of type 'HTMLElement | null' is not assignable to parameter of type 'Element | DocumentFragment'.  Type 'null' is not assignable to type 'Element | DocumentFragment'

Argument of type 'HTMLElement | null' is not assignable
to parameter of type 'Element | DocumentFragment'. 
Type 'null' is not assignable to type 'Element | DocumentFragment'

이런 관련한 문제가 발견된다면 해결방법은 아래와 같다. 해당 문제는 react-dom의 createRoot 메소드가 원하는 파라미터 형식과 사용자가 작성한 코드의 파라미터가 달라서 발생한다. 지문에 나타난 그대로 해결해주면 된다. 메소드는 Element | DocumentFragment를 원하고 document.getElementById의 값은 HtmlElement | null 을 제공하기 때문에 이것의 형식을 Element로 고정하여 정의해주면 된다.

 

해결방법 : 

import { createRoot } from "react-dom/client";
import App from "./App";
const container = document.getElementById("root");
const root = createRoot(container as Element);
root.render(<App />);

위와 같이 깔끔하게 해결할 수 있다.

반응형