์ซ์์ ๋ฌธ์๋ฅผ ๊ตฌ๋ถํด์ ๋ณ์์ ๋ด์์ฃผ๋ ๋ค๋ฅธ ์ธ์ด๋ค์ ๋ฐํด ์๋ฐ์คํฌ๋ฆฝํธ
๋ ๋์ ๊ตฌ๋ถํ์ง ์๊ณ ๋ณ์์ ๋ด์์ค๋ค. ๋ณ์๋ ์์๋ฅผ ๋ง๋ค๋ฉด ๋ฌธ์๋ฅผ ๋ฃ์๋ค๊ฐ, ๋์ค์ ์ซ์๋ฅผ ์ฌํ ๋นํด์ฃผ๋ ๋ฑ ์์ ๋ก์ด ๋ณํ์ด ๊ฐ๋ฅํ๋ค.
์ด๋ฐ ์ ์ด ์ฝ๋๋ฅผ ์งค ๋์๋ ํธ๋ฆฌํ์ง๋ง, ํฐ ์๋น์ค๋ฅผ ์ฌ๋ฌ ๋ช
์ด ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ์ ์๋น์ค์ ์์ ์ฑ์ด ๋จ์ด์ง ์ ์๋ค. ๋ฐ๋ผ์ ๋ณ์์ ํ์
์ ์ง์ ํ๊ณ , ์ฌํ ๋น์ด ์๋๋๋ก ํ๊ธฐ ์ํด ํ์
์คํฌ๋ฆฝํธ๊ฐ ๋์ค๊ฒ ๋์๋ค!
๋ณ์๋ช ๋ค์ ํ์ ์ ์ง์ ํ๋ฉด ๋๋ค.
let aaa : string = "์๋
ํ์ธ์"
let bbb : number = 123
let ccc : boolean = true
๊ฐ์ฒด์ ๊ฒฝ์ฐ์๋ Interface
๋ฅผ ์ฌ์ฉํด์ ์ง์ ํด์ค๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฒด์ ํ์
์ ์ง์ ํ ๋์๋ interface์ I์ ๋ณ์๋ช
์ ํฉ์ณ์ฃผ๋ ๊ฒ์ด ๊ด๋ก์ด๋ค.
Interface IProfile{
name: string;
age: number;
}
let profile:IProfile = { name: "ํ๊ธธ๋", age: 13}
// age ํ์
์ด ๋ฌธ์์ด์ด๊ฑฐ๋ ์ซ์์ผ ๊ฒฝ์ฐ
interface IProfile{
name: string
age: string | number
}
const profile:IProfile = { name: "ํ๊ธธ๋", age: 13 or "13์ด"}
props
๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์, ์์ ๊ฐ์ด ํ์
์ ์ง์ ํด์ฃผ๋ฉด ๋๋ค.
//๋ฌธ์์ด๋ง ์๋ ๋ฐฐ์ด
let aaa:string[] = ["์งฑ๊ตฌ", "์ ๋ฆฌ", "ํ์ด"]
//๋ฌธ์์ด๊ณผ ์ซ์์ด
let bbb:(string | number)[] = [1, 2, 3, "๋งน๊ตฌ", "์ฒ ์"]
//๋ชจ๋ ์ซ์์ด๊ฑฐ๋ ๋ชจ๋ ๋ฌธ์์ธ ๋ฐฐ์ด
let ccc: string[] | number[] = ["์งฑ์", "ํฐ๋ฅ์ด"]
ccc=[1, 2, 3]
ํ๋ผ๋ฏธํฐ์ ํ์ ๋ ์ง์ ํด์ผ ํ๋ค.
/* props๋ฅผ ์ฃผ๋ ์ชฝ ์ปดํฌ๋ํธ */
// ํ๋ผ๋ฏธํฐ์ ํ์
์ง์
const add = (a: number, b: number) => {
return a + b;
};
return (
// ์ปดํฌ๋ํธ์ JSX๋ถ๋ถ
<Component add={add} />
);
--------------------------------------------------------------
/* props๋ฅผ ๋ฐ๋ ์ชฝ ์ปดํฌ๋ํธ */
// ํจ์์ ํ์
์ง์
// ๋ฆฌํด๋๋ ๊ฐ์ ํ์
์ ์ ์ฉ. ๋ฆฌํด๋๋ ๊ฐ์ด ์๋ค๋ฉด void ์ ์ด์ฃผ๋ฉด ๋จ.
interface IProps {
add: (a: number, b: number) => number;
}
const Component2 = (props: IProps) => {
props.add(1, 2);
return (
//์ปดํฌ๋ํธ์ JSX๋ถ๋ถ
);
};
์ด๋ฒคํธ ํจ์์ ํ๋ผ๋ฏธํฐ(event) ํ์
์ ์ง์ ํด์ค ๋์๋ ChangeEvent
๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค. ChangeEvent๋ ๋ฆฌ์กํธ์์ ์ ๊ณตํด์ฃผ๋ ํ์
์ด๊ธฐ ๋๋ฌธ์ import ํด์ค์ผ ํ๋ค.
// HTML ํ๊ทธ๊ฐ ๋ฌด์์ธ์ง ์ ์ด์ค์ผํจ
const onChangeMyWriter = (event: ChangeEvent<HTML inputelement>)=>{
setMywriter(event.target.value)
}
์ด๋ ๊ฒ ๋ณ์์ ํ์ ์ ์ง์ ํด์ฃผ๊ณ ๋๋ฉด, ํ์ ์ ๋ง์ง ์๋ ๊ฐ์ ํ ๋นํ์ ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค!
์ฌ๊ธฐ์ ์ ๊น!
๋ธ๋ผ์ฐ์ ๋ HTML, CSS, ์๋ฐ์คํฌ๋ฆฝํธ๋ง ์ฝ์ ์ ์๋๋ฐ, ํ์
์คํฌ๋ฆฝํธ
๋ ์ด๋ป๊ฒ ์ฝ์๊น? ํ์
์คํฌ๋ฆฝํธ๋ ์คํ ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณ๊ฒฝ(์ปดํ์ผ)๋์ด ์คํ๋๋ค.
์ปดํ์ผ: ํ๋์ ์ธ์ด๊ฐ ๋ค๋ฅธ ์ธ์ด๋ก ๋ณ๊ฒฝ๋๋ ์์
ํธ๋์คํ์ผ: ๋์ผํ ์ธ์ด์์ ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ์์