๐ ์์ฑํ์ผ
๐ก **
**
1. ์ ๋ค๋ฆญ๊ฐ์
๐น
์ ๋ค๋ฆญ์ ์ปดํฌ๋ํธ ๋๋ ํจ์์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์ ํ์
์ ์ธ๋ถ์์ ์ง์ ํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ด๋ค ํ์
์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ง๋ฅผ ์ ์ธ ์์ ์ด ์๋๋ผ, ์์ฑ ์์ ์ ํ์
์ ๋ช
์ํ์ฌ ํ๋์ ํ์
๋ง์ด ์๋ ๋ค์ํ ํ์
์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฒ์ด๋ค.
ํ๋ฒ์ ์ ์ธ์ผ๋ก ๋ค์ํ ํ์
์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์๋ค.
ํ์
์ ํ๋์ ๋ณ์์ฒ๋ผ ์ทจ๊ธํ์ฌ ์ ์ฐํ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ฒ ํ ๊ฒ์ด ์ ๋ค๋ฆญ์ด๋ผ ํ ์ ์๋ค.
2. ํจ์์ ํ์
๐ข ํจ์์ ํ์
์ ์ ์ธํด๋ณด์
basic.ts
- ํจ์๋ฅผ ์์ฑํด๋ณด์
/**
* 06 functions & types
* **/
function add(a:number,b:number){
return a+b;
}


- ๋ฐํ๊ฐ์ ํ์ ์ง์
function add(a: number, b: number): number | string {
return a + b;
}
basic.ts
- output ํจ์๋ฅผ ์์ฑํด๋ณด์
function output(value:any){
console.log(value)
}
output("์ถ๋ ฅ")

- ๋ฐํํ์ ์ด void ๋ก ํ์ธ๋๋ค
- void ๋ null, undefined ์ ๊ฐ์ ๋น์ด์๋ ๊ฐ์ ์๋ฏธ์ด๋ ํจ์์ ๋ฐํ๊ฐ์ด ๋น์ด์์์ ์๋ฏธํ๋ค
- return ์ ํจ์์ ์ถ๊ฐํ ๋ค์ ๋ฐํํ์ ์ ํ์ธํ๋ฉด any ๋ก ๋ณ๊ฒฝ๋๊ฒ์ ๋ณผ์์๋ค

3. ์ ๋ค๋ฆญ
3-1 ์์
basic.ts
- insertAtBeginning ํจ์ ์์ฑ
function insertAtBeginning(array:any[],value:any){
const newArr=[value,...array] //1
return newArr; //2
}
- newArr ์ spred operator ๋ฅผ ์ฌ์ฉํ์ฌ value ์ ๋ฐฐ์ด์ ์ฐ๊ฒฐํ๋ค
- newArr ์ ๋ฆฌํดํ๋ค

- ๋ค์ ํจ์ ์์ฑ
const testArr = [1, 2, 3]; //1
const updateArr = insertAtBeginning(testArr, -1); //2
- testArr ์ ๋ฐฐ์ด๋ก ์๋ฌด ์ซ์๋ ๋ฃ๋๋ค
- updateArr ์ insertAtBeginningํจ์๋ฅผ ํธ์ถํ๋ฉด์ ์ธ์๋ก testArr ๊ณผ -1 ์ ์ ๋ฌํ๋ค
- updataArr์ ๋ฆฌํด๊ฐ์ ์ต์ข ์ ์ผ๋ก [-1,1,2,3] ์ด ๋ ๊ฒ์ด๋ค
- ํ์ธํด์ผ ํ ๋ถ๋ถ์ ๊ฐ ๋ฌธ์ฅ์ ํ์
์ด๋ค. ๋ง์ฐ์ค๋ฅผ ๋ณ์๋ช
์์ ์ฌ๋ ค์ ์ถ๋ก ๋ ํ์
์ ํ์ธํด๋ณด์
์๋์ ์ด๋ฏธ์ง์ฒ๋ผtestArr์ number ,updateArr์ any๋ก ํ์ธ์ด ๋๋ค

updateArr ์์ inserAtBeginning ํจ์์ ์ธ์๋ก ๋๊ฒจ์ง๋ฉด์ any ํ์
์ผ๋ก ์ง์ ๋์๊ธฐ ๋๋ฌธ

- typescript ๋ insertAtBeginning ํจ์ ๋ด ๋งค๊ฐ๋ณ์์ ๋ฐฐ์ด์ any ํ์ ์ผ๋ก ์ถ๋ก ํ๋ฉฐ ํ์ ๋ชจ๋ ๊ฐ์ฒด, ๊ฐ์ anyํ์ ์ผ๋ก ์๊ฐํ๊ฒ ๋๋ค.
์ฌ๋ฌ ํํ์ ๊ฐ์ ์ ๋ฌ๋ฐ์ ๋ณต์กํ ์ผ์ ํ๋ ํจ์์ ๊ฒฝ์ฐ any ํ์ ์ ์ฌ์ฉ์ด ๋ถ๊ฐํผ ํ ๋๊ฐ ์๋ค
ํ์ง๋ง any ๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์ํธ์ถ ์ดํ ๋ฐํ๋๋ ๊ฐ์ ๋ชจ๋ any ํ์
์ผ๋ก ์ถ๋ก ๋์ด ํ์
์คํฌ๋ฆฝํธ์ ๊ธฐ๋ฅ์ ์ ๋๋ก ์ฌ์ฉํ ์ ์๊ฒ๋๋ค.
- ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฌธ์์ด์ ์๋ฅด๋ ํจ์๋ฅผ ์ถ๊ฐํด๋ณด์
updateArr[0].splice('')
์์ ํจ์๋ ์ปดํ์ผํ ์ถ๋ ฅํด๋ณด๋ฉด ์ค๋ฅ๊ฐ ๋๋ค

ํ์
์คํฌ๋ฆฝํธ์์๋ ์ค๋ฅ๊ฐ ๋์ง ์์ง๋ง ์คํ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
splice ํจ์๋ ๋ฌธ์ ํ์
์๋ง ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋์ด๊ณ updateArr ์ ํ์
์ any ์ด๋ค.
ํ์ง๋ง ์ค์ง์ ์ผ๋ก updateArr ๋ด๋ถ์ ์ ์ฅ๋ ๊ฐ testArr์ ํ์
์ number ์ด๋ฉฐ
์ต์ข
์ ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ splice ๋ฉ์๋์์ ์ฌ์ฉํ ์ ์๋ number ์๋ฃํ์ ์ฌ์ฉ๋์์ผ๋ฏ๋ก ์ค๋ฅ๊ฐ ๋๋ค
- Generic ์ ์ฌ์ฉํ ํด๊ฒฐ

์ฝ๋๋ฅผ ์์ ํ๋ฉด ์๋์ ๊ฐ์ด ์์ฑ๋จ๊ณ์์ ์๋ฌ๊ฐ ๊ฒ์ถ๋๋๊ฒ์ ๋ณผ์ ์๋ค

function insertAtBeginning<T>(array: T[], value: T) {
const newArr = [value, ...array];
return newArr;
}
const testArr = [1, 2, 3];
const updateArr = insertAtBeginning(testArr, -1);
updateArr[0].splice("");//updateArr์๋ number ๊ฐ ์์ผ๋ฏ๋ก ์ค๋ฅ
console.log(updateArr[0].splice(""));
- ๋ฌธ์์๋ฃํ์ ์ ๋ฌํด๋ณด์
- insertAtBeginning ํจ์๋ฅผ ํธ์ถํ๋ฉด์ ์ธ์๋ก string ์ ์ ๋ฌํ๋ค.
const stringArr = insertAtBeginning(["a", "b"], "c");
stringArr[0].split("");
console.log(stringArr[0].split(""));
b. generic type ์ผ๋ก ์ง์ ๋ ๋งค๊ฐ๋ณ์๋ ์ ๋ฌ๋ ๊ฐ์ ํ์ ์ ๋ฐ๋ผ ์ถ๋ก ๋๋ค.
- ์ปดํ์ผ
npx tsc
- ์คํํ์ธ
