https://velog.io/@nemo/jsx.element
위 블로그내용)
1. JSX.Element
JSX.Element 타입은 리액트에서 사용하는 JSX 자료형을 명시한다. 리액트에서는 HTML처럼 생긴 JSX를 사용하는데, 이 타입을 지정하고 싶으면 JSX.Element를 사용하면 된다.
JSX를 변수에 담을 때
const container: JSX.Element = <div className="container"></div>
📌 JSX.IntrinsicElements
태그까지 지정하고 싶다면 JSX.IntrinsicElements를 사용해보자.const container: JSX.IntrinsicElements['div'] = <div className="container"></div>
컴포넌트 타입 지정 시
1) 컴포넌트를 담은 함수
컴포넌트는 항상 JSX를 return하기 때문에 JSX.Element로 타입을 지정하면 된다.
const App (): JSX.Element {
return (
...
)
}
2) props 타입을 지정하고 싶다면
방법 1.
(App.tsx)
const App (): JSX.Element {
return (
<div className="App">
<Header menu={ menu } contact={ contact }/>
</div>
)
}
(Header.tsx)
const Header (props: { menu: string, contact: number }): JSX.Element {
return (
<div className="header">
{props.menu}
{props.contact}
</div>
)
}
방법 2.
컴포넌트 바깥에 type 묶음을 만들어 사용한다.
(Header.tsx)
type Props묶음 = {
menu: string,
contact: number
}
const Header (props: Props묶음): JSX.Element {
return (
<div className="header">
{props.menu}
{props.contact}
</div>
)
}
2. state 타입 지정
1) 초깃값이 있는 경우
지정하지 않아도 자동으로 설정된다.
2) 초깃값이 없는 경우
제너릭 문법으로 타입을 지정해준다.
'Type Script' 카테고리의 다른 글
[TypeScript] 이미지 절대 경로 import 오류 (0) | 2023.04.14 |
---|---|
[TS] 이니셜라이저가 없고 생성자에 할당되어 있지 않습니다. 에러 해결 (0) | 2023.03.27 |
[TS] tsconfig.json + tsconfig.path.json 파일 합치기 (0) | 2023.03.08 |
[TS] src 경로 오류 해결(tsconfig.json) (0) | 2023.03.07 |
[TS] 중복된 함수입니다. 오류 (0) | 2023.03.03 |