함수 | 타입스크립트, 코딩앙마
https://youtu.be/prfgfj03_VA
// return 값이 number타입일 때
function add(num1: number, num2: number):number {
return num1 + num2;
}
// return 값이 없을 때
function add(num1: number, num2: number):void {
console.log(num1+num2)
}
// return 값이 true, false 일 때
function isAdult(age: number):boolean {
return age>19;
}
?
function hello(name?: string){
return `Hello ${name || "world"}`
}
const result = hello() // 물음표가 있어야 Error 표시가 안 보임
선택적 매개변수는 필수 매개변수보다 뒤에 와야 한다
function hello(name: string, age?: number): string{
return `Hello ${name} You are ${age}`
}
선택적 매개변수를 필수보다 앞에 쓰고 싶다면 아래와 같이 쓸 수 있다
function hello(name: string | undefined, age: number){
return `Hello ${name} You are ${age}`
}
const result = hello(undefined, 19)
예) rest 연산자: 배열 타입
function add(...nums: number[]){
return nums.reduce((result, num) => result + num,0);
}
console.log(add(1,2,3), add(1,2,3,4,5,6,7,8,9,10)) // 6, 55
interface User {
name: string;
}
// User 타입인 객체 Sam에 대하야
const Sam: User = {name: 'Sam'}
// bind를 이용해 this를 Sam객체로 명시한다
function showName(this: User){
console.log(this.name)
}
const a = showName.bind(Sam);
a(); // "Sam"
interface User {
name: string;
}
// User 타입인 객체 Sam에 대하야
const Sam: User = {name: 'Sam'}
// (this 다음부터~) 2개의 매개변수를 받는다
function showName(this: User, age: number, gender: "m" | "f"){
console.log(this.name, age, gender)
}
const a = showName.bind(Sam);
a(30, "m"); // "Sam"
bind | 코딩앙마, 중급자바스크립트
https://youtu.be/KfuyXQLFNW4
: 동일한 매개변수지만 경우에 따라 서로 다른 타입을 반환 시.
👉
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", "32");