[TypeScript] Function ์ ์
์นดํ
๊ณ ๋ฆฌ : ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
ํ๊ทธ: ts · typescript · typescript์ ๊ธฐ๋ณธ ํจ์ · Function
ํ๊ทธ: ts · typescript · typescript์ ๊ธฐ๋ณธ ํจ์ · Function
- 1. Function
- Javascript ๊ธฐ๋ณธ ํจ์
- Typescript ๊ธฐ๋ณธ ํจ์
- Optional parameter : ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ํจ์์ ์๋ฌด๋ฐ ๊ฐ๋ ์ ๋ฌํ์ง ์๊ณ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ (์ถ๋ ฅ์ undefined)
- Default parameter : ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด ๊ธฐ๋ณธ ์ ๋ ฅํ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ
- Rest parameter(Spread ์ฐ์ฐ์(โฆ)๋ฅผ ์ฌ์ฉํ์ฌ ํจ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ์์ฑํ ํํ) : ๋ชจ๋ ์ ๋ฌ ๋๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐฐ์ด๋ก ๋ฐ์์ด number[] = ์ซ์ ํ์ ์ ๋ฐฐ์ด
1. Function
Javascript ๊ธฐ๋ณธ ํจ์
function jsAdd(num1,num2){
return num1+num2
}
* ํ์ดํํจ์ *
const jsAdd = (num1,num2) => {
return num1+num2
}
Typescript ๊ธฐ๋ณธ ํจ์
- ๋งค๊ฐ๋ณ์์ ํ์ ์ ์ง์ ํด์ค , ํจ์์ ํ์ ์ ์ง์ ํด์ค
function add(num1:number,num2:number):number{
return num1+num2
}
* ํ์ดํํจ์ *
const add = (num1:number,num2:number):number => {
return num1+num2
}
Optional parameter : ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ํจ์์ ์๋ฌด๋ฐ ๊ฐ๋ ์ ๋ฌํ์ง ์๊ณ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ (์ถ๋ ฅ์ undefined)
- ?๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋ฌํด๋ ๋๊ณ ์ ๋ฌ ํ์ง ์์๋๋
- ?๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด lastname์ parameter๊ฐ ์์ผ๋ฉด Error ์ถ๋ ฅ
function printName(firstname:string , lastname:string){
console.log(firstname);
console.log(lastname);
}
* Error *
printName("steve","Jobs") // ๊ฐ : "steve","Jobs"
printName("Kdn"); // 2๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ง ์์ An argument for 'lastname' was not provided.
printName("dnod") // 2๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ง ์์ An argument for 'lastname' was not provided.
* Correct *
function printName(firstname:string , lastname?:string){
console.log(firstname);
console.log(lastname); // undefined
}
printName("steve","Jobs") // ๊ฐ : "steve","Jobs"
printName("Kdn"); // ๊ฐ : "kdn","undefined"
printName("dnod"); // ๊ฐ : "dnod","undefined"
Default parameter : ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด ๊ธฐ๋ณธ ์ ๋ ฅํ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ
function printMessage(message: string = "default message") {
console.log(message);
}
printMessage(); // ๊ฐ : default message
Rest parameter(Spread ์ฐ์ฐ์(โฆ)๋ฅผ ์ฌ์ฉํ์ฌ ํจ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ์์ฑํ ํํ) : ๋ชจ๋ ์ ๋ฌ ๋๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐฐ์ด๋ก ๋ฐ์์ด number[] = ์ซ์ ํ์ ์ ๋ฐฐ์ด
function addNumbers(...numbers: number[]): number {
return numbers.reduce((a, b) => a + b); //๋์ฐ reduce ํจ์
}
console.log(addNumbers(1, 2));
console.log(addNumbers(1, 2, 3, 4));
console.log(addNumbers(1, 2, 3, 4, 5, 0));