[TypeScript] 함수
타입스크립트 함수
기본
function add(num1: number, num2: number): number {
return num1 + num2;
}
function add(num1: number, num2: number): void {
console.log(num1 + num2);
}
function isAdult(age: number): boolean {
return age > 19;
}
?
function hello(name?: string) {
return `Hello ${name || "world"}`;
}
function hello2(name = "world") {
return `Hello ${name}`;
}
function hello(name: string, age?: number): string {
if (age !== undefined) {
retrun`Hello ${name}. You are ${age}`;
} else {
return `Hello, ${name}`;
}
}
선택적 매개변수는 필수 매개변수의 자리는 바뀔 수 없다.
반드시 선택적 매개변수가 앞으로 와야하는 경우에는
function hello(age: number || undefined, name: string): string {
if (age !== undefined) {
retrun`Hello ${name}. You are ${age}`;
} else {
return `Hello, ${name}`;
}
}
console.log(undefined, 'steve')
위의 경우처럼 사용가능.
Rest parameters
function add(...nums: number[]) {
return nums.reduce((result, num) => result + num, 0);
}
add(1, 2, 3);
this
interface User {
name: string;
}
const Sam: User = { name: "Sam" };
function showName(this: User, age: number) {
console.log(this.name, age);
}
const a = showName.bind(Sam);
a(30); // Sam, 30
function overloading
interface User {
name: string;
age: number;
}
function join(name: string, age: string): string;
function join(name: string, age: number): User;
function join(name: string, age: number | string): User | string {
if (typeof age === "number") {
return { name, age };
} else {
return "나이는 숫자로 입력해주세요.";
}
}
const sam: User = join("Sam", 30);
const Jane: string = join("Jane", "30");
// err - User 인지 string 인지 확신을 할 수 없는 상태
2개 이상의 타입을 return해야하는 경우에 사용. function 키워드로만 함수 오버로딩을 할 수 있다.
댓글남기기