함수 선언과 호출
타입스크립트에서 함수는 다음과 같이 선언한다.
function greet(name: string): string {
return `Hello ${name}`;
}
- name: string → name이라는 매개변수는 string 타입이어야 함
- : string → 이 함수는 string을 반환함
만약 return 값을 생략하거나 반환값이 없으면 void 타입을 사용한다.
타입 별칭을 이용한 함수 타입 선언
함수타입을 명시할 대 타입 별칭을 활용하면 코드가 훨씬 읽기 쉬워짐
type ArrowFuncType = (name: string) => string;
const arrowFunc: ArrowFuncType = (name) => {
return `Hi ${name}`;
};
console.log(arrowFunc('bergerac'));
console.log(arrowFunc('roxan'));
ArrowFuncType은 (name: string) => string 타입의 함수라는 의미
Hi bergerac
Hi roxan
선택적 매개변수와 기본 매개변수
함수를 호출할 때 매개변수를 생략하거나, 기본값을 제공하고 싶을 때가 있다. 이럴 때 선택적 매개변수와 기본 매개변수를 활용한다.
function select(name?: string, nickname: string = '어둠의더듬이') {
if (name) {
console.log(`${nickname} is ${name}`);
} else {
console.log(`${nickname} is guest`);
}
}
select(); // 어둠의더듬이 is guest
select('bergerac'); // 어둠의더듬이 is bergerac
select(undefined, '드기쉬'); // 드기쉬 is guest
select('roxan', '나의천사'); // 나의천사 is roxan
- name?: string → 선택적 매개변수 (undefined일 수 있음)
- nickname: string = '어둠의더듬이' → 기본값이 할당된 매개변수
Rest(나머지) 매개변수
여러 개의 인자를 배열 형태로 받고 싶다면 Rest 매개변수를 사용한다. 문법은 JavaScript와 동일하지만, 타입스크립트에선 타입을 배열로 명시해야 한다.
function sum(a: number, b: number, ...c: number[]) {
return c.reduce((c1, c2) => c1 + c2, 0);
}
console.log(sum(1, 2, 3, 4, 5, 6)); // 18
console.log(sum(1, 2)); // 0
console.log(sum(1, 2, 10, 20, 30)); // 60
- ...c: number[] → c는 숫자 배열을 의미
- .reduce(...)를 이용해 배열 내 요소를 누적합으로 계산
⚠️ Rest 매개변수는 항상 가장 마지막 위치에 와야 하며, 타입은 배열(type[]) 형태로 작성해야 한다.
'TypeScript' 카테고리의 다른 글
TypeScript - TypeAssertion (0) | 2025.04.23 |
---|---|
TypeScript "Type" - literal type (0) | 2025.04.21 |
TypeScript "Type" - Intersection (0) | 2025.04.20 |
TypeScript "Type" - Union (0) | 2025.04.19 |
TypeScript "Type" -객체 타입과 타입 별칭(alias) (0) | 2025.04.18 |