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}`;
}
4. this
interface User {
name: string;
}
const Lee:User = {name:'Lee'}
function showName(this:User, age:number, gender:'m'|'f') {
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