TypeScript - 함수

oong·2022년 8월 11일
0
// 함수에서도 선택적 매개변수를 사용할 수 있다.
function hello(name?: string) {
    return `Hello, ${name || "world"}`;
}

const result = hello(); 
const result = hello("Sam");

자바스크립트에서는 아래와 같이 변수에 기본 값을 줄 수 있다.

function hello(name = "Min Ji") {
    return `Hello, ${name}`;
}

매개변수를 여러개 사용할 때, 필수 매개변수는 선택적 매개변수보다 앞에 위치해야한다.


function hello(name:string, age?:number):string {
    if (age !== undefined) {
        return `Hello ${name}. You are ${age}`;
    } else {
        return `Hello, ${name}`;
    }
}

만약 선택적 매개변수인 age를 name보다 앞에 놓고 싶다면,

function hello(age:number | undefined, name:string):string {
    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

타입스크립트에서 this의 타입을 정의하는 방법

interface User {
    name: string;
}

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

function showName(this:User) {
    console.log(this.name)
}

const a = showName.bind(Sam);
a();

함수 오버로드 - 전달 받은 매개변수나 타입에 따라 다른 동작을 하는 것을 의미

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 "나이는 숫자로 입력해주세요.";
    }
}

0개의 댓글

관련 채용 정보