[참고영상]
함수의 기본형
- 괄호 안의 값은 매개변수, 괄호 오른쪽의 값은 리턴 타입. 아무것도 리턴하지 않을 경우에는 void 사용.
// 함수
function add_func(n1: number, n2: number): number {
return n1 + n2;
}
- 매개변수 뒤에 ?를 붙여서 선택적으로 사용도 가능
아래의 경우 name을 인자값으로 넣어주면 name을 출력하고 아니면 "world"를 출력.
function hello(name?: string): string {
return `Hello, ${name || "world"}`;
}
- 매개변수가 여러 개일 경우 선택적 매개변수가 필수 매개변수보다 앞 순서에 올 수 없다.
- 그렇지만 선택적 매개변수를 앞쪽에서 사용하고 싶다면 다음과 같은 방법으로 사용 가능.
undefined를 명시적으로 전달해줌.
// 선택적 매개변수
function hello2(age: number | undefined, name: string): string {
if (age != undefined){
return `Hello, ${name}. You are ${age}`
}
else{
return `Hello, ${name}`;
}
}
console.log(hello2(30, "IU")); // Hello, IU. You are 30
console.log(hello2(undefined, "IU")); // Hello, IU
- ...을 사용하면 전달받은 매개변수를 배열로 만들어줌.
// 매개변수 배열로 받기
function sum(...nums:number[]){
return nums.reduce((result, num)=>result + num, 0);
}
sum(1, 2, 3); // 6
sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 55
함수 오버로드
- 매개변수의 개수나 타입에 따라 리턴하는 값의 타입이 다른 경우 오버로드를 사용
// 함수 오버로드
interface User2 {
name : string;
age : number;
}
function join(name:string, age: number): User2;
function join(name:string, age: string): string;
function join(name:string, age: number | string): User2 | string {
if (typeof age === "number"){
return{
name,
age,
};
} else{
return "나이는 숫자로 입력해주세요.";
}
}
const u1: User2 = join("u1", 30);
const u2: User2 = join("u2", "30");
console.log(u1, u2); // { name: 'u1', age: 30 } 나이는 숫자로 입력해주세요.
'Language > Typescript' 카테고리의 다른 글
[TypeScript/타입스크립트] 클래스 Class (0) | 2023.04.06 |
---|---|
[TypeScript/타입스크립트] 리터럴, 유니온/교차 타입 (0) | 2023.03.31 |
[TypeScript/타입스크립트] 인터페이스(interface) (0) | 2023.03.06 |
[TypeScript/타입스크립트] 타입스크립트 설치하기 (0) | 2023.03.06 |
[TypeScript/타입스크립트] 타입 지정 (0) | 2023.02.18 |