TypeScript/TypeScript Basic
TypeScript 함수
${Harvey}
2024. 3. 12. 14:59
//아래와같이 매개변수의 타입, 함수의 반환 타입을 입력한다.
function add(num1: number, num2: number): void{
console.log(num1+num2);
}
function hello(name?: string){ //아래 name에 값이 없으면 "world"를 반환한다고 되어 있지만 name?과 같이 typescript에선 명시적으로 값이 없어도 된다고 알려줘야함.
return `Hello , ${name || "world"}`;
}
function hello2(name = "world"){ //위와 같음.
return `Hello , ${name}`;
}
const result = hello();
function hello(name: string, age?:number): string { // age?가 name 앞에 오지 않도록 주의.
if(age !== undefined){
return `Hello, ${name}. You are ${age}`;
}else{
return `Hello, ${name}`;
}
}
function add(...nums:number[]){
return nums.reduce((result, num) => result + num,0);
}
add(1, 2, 3); //6
add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); //55
this
interface User {
name: string;
}
const Sam: User = {name:'Sam'}
function showName(this:User, age:number,gender:'m'|'f'){ //this의 자료형은 맨 앞에서 지정.
console.log(this.name)
}
const a = showName.bind(Sam);
a(30, 'm');
오버로드
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");