[TypeScript] Function

승미니·2021년 6월 12일
0

TypeScript

목록 보기
3/3

1. 기본 형태

function add(num1: number, num2: number) : void {
	console.log(num1 + num2);
}

function add(num1: number, num2: number) : number {
	return num1 + num2;
}

function isAdult(age: number) : boolean {
	return 19 > age;
} 
//

2. Optional

function hello(name?: string) {
	return `Hello, ${name || "world"}`;
}
  • 함수의 매개변수도 optional 로 지정할 수 있다.
  • 기본 매개변수가 항상 앞에 있어야 한다.
    optional 매개변수가 매개변수 보다 앞에 올 수 없다.

3. Defalut값 지정

function hello(name = "lee") {
	return `Hello, ${name}`;
}
  • Defalut 값을 지정할 수 있다.

4. this

interface User {
	name: string;
}

const Lee:User = {name:'Lee'}

function showName(this:User, age:number, gender:'m'|'f') {
  	// this를 제외하고 매개변수 전달 
	console.log(this.name, age, gender)
}

const a = showName.bind(Lee);
a(25, 'f');

5. interface와 함께 사용

interface User {
	name: string,
  	age: number
}

function join

function join(name:string, age:number | string) : User | string {
	if(typeof age === "number") {
		return {
			name,
			age,
		};
	} else {
		return "나이는 숫자로 입력하세요";
	}
}

// 에러 발생
const lee: User = join("Lee", 25);
const brad: string = join("brad", "20");
  • 동일한 매개변수라도 타입을 다르게 줄 수 없다. (js에서는 가능)
    • 오버로드를 사용하여 해결한다.
interface User {
	name: string,
  	age: number
}

function join(name:string, age:number): User;
function join(name:string, age:string): string;
function join(name:string, age:number | string) : User | string {
	if(typeof age === "number") {
		return {
			name,
			age,
		};
	} else {
		return "나이는 숫자로 입력하세요";
	}
}

const lee: User = join("Lee", 25);
const brad: string = join("brad", "20");

참고
https://youtu.be/prfgfj03_VA

profile
Web Frontend Developer

0개의 댓글