잘못된 예시
function Child(props: Props){
return(
<div>
<h1>{title:string}</h1>
<h2>{subTitle: string}</h2>
<p>{contents: string}</p>
</div>
)
}
h1, h2, p 태그에 오류 발생 타입 지정이 불가능 하다.
Interface를 통해서 구현 해야합니다.
import React from 'react'
interface Props{
title: string;
subTitle:string;
contents:string;
}
Ex)
import React from 'react'
function Child(props: Props){
return(
<div>
<h1>{props.title}</h1>
<h2>{props.subTitle}</h2>
<p>{props.contents}</p>
</div>
)
}
export default function Properties() {
return (
<>
//<child />을 통해 함수를 호출 하고 매개변수를 전달
<Child title='엔비디아 맹추격' subTitle='최경미 기자' contents='풀이된다.' />
<Child title='NC소프트' subTitle='조아리 기자' contents='nc soft 기대'/>
<Child title='MS' subTitle='박강림 기자' contents='원도우'/>
</>
)
}
function Child({title, subTitle, contents}: Props){
// const {title, subTitle, contents}=props;
return(
<div>
<h1>{title}</h1>
<h2>{subTitle}</h2>
<p>{contents}</p>
</div>
)
}
1. const {title, subTitle, contents}=props;
2. function Child({title, subTitle, contents}: Props){ }
interface Props{
sequence: number;
title: string;
subTitle:string;
contents:string;
}
function Child({sequence, title, subTitle, contents}: Props){
return(
<div>
<h1>{sequence}</h1>
<h1>{title}</h1>
<h2>{subTitle}</h2>
<p>{contents}</p>
</div>
)
}
{ }가 필요 -> 문자열일때 {} 필수는 아님export default function Properties() {
const article = {
sequence: 1,
title: '엔디비아 맹추격',
subTitle: '최경미 기자',
contents: '행보로 풀이된다'
}
return (
<>
<Child sequence={article.sequence} title={article.title} subTitle={article.subTitle} contents={article.contents} />
<Child sequence={2} title='NC소프트' subTitle='조아리 기자' contents='nc soft 기대'/>
<Child {...article}/>
</>
)
}
1. <Child sequence={article.sequence} title={article.title} subTitle={article.subTitle} contents={article.contents} />
2. <Child sequence={2} title='NC소프트' subTitle='조아리 기자' contents='nc soft 기대'/>
3. <Child {...article}/>
함수를 전달할 경우
import React, { ReactNode } from 'react'
interface Props{
sequence: number;
title: string;
subTitle:string;
contents:string;
child?: ReactNode;
}
function Child({sequence, title, subTitle, contents, child}: Props){
return(
<div>
<h1>{sequence}</h1>
<h1>{title}</h1>
<h2>{subTitle}</h2>
<p>{contents}</p>
{child}
</div>
)
}
export default function Properties() {
const article = {
sequence: 1,
title: '엔디비아 맹추격',
subTitle: '최경미 기자',
contents: '행보로 풀이된다'
}
return (
<>
<Child {...article} child={<h1>안녕하세요</h1>}/>
</>
)
}
// ? 를 이용할시 선택적 필수가 아니게 된다
child?: ReactNode;
//호출
{child}
//child => 요소를 추가 하여 입력
<Child {...article} child={<h1>안녕하세요</h1>}/>