[TypeScript] 기본 타입과 함수 타입

어느 개발자·2022년 2월 23일
0

📕 인프런 강의 타입스크립트 입문 - 기초부터 실전까지를 수강하며 작성한 게시물입니다.

기본 타입

문자열 (String)

let str: string = 'hello';

숫자 (Number)

let num: number = 10;

배열 (Array)

let arr: Array<number> = [1, 2, 3];
let items: number[] = [1, 2, 3]; // 배열 리터럴 사용
let heroes: Array<string> = ['Capt', 'Thor', 'Hulk', 10]; // Error

튜플 (Tuple)

let address: [string, number] = ['seoul', 100];

객체 (Object)

let obj: object = {};
let person: object = {
    name: 'kyungjin',
    age: 26
};

객체 내부의 타입도 명시할 수 있다. 필드 누락 시 Linter에서 오류를 잡아준다.

let person: { name: string, age: number } = {
    name: 'kyungjin',
    age: 26
};

불리언 (Boolean)

let show: boolean = true;

함수 타입

파라미터의 타입

function sum(a: number, b: number) {
    return a + b;
}

sum(10, 20);

반환 값의 타입

function func(): number {
    return 10;
}

파라미터 & 반환 값의 타입

function sum(a: number, b: number): number {
    return a + b;
}

Optional Parameter

함수 인자의 개수에 따른 동작의 차이

// TS 정상 동작
sum(10, 20);

// TS 에러
sum (10, 20, 30); // Error!

// JS 정상 동작
sum(10, 20, 30); // JS에서는 오류가 발생하지 않는다

TypeScript에서 함수 파라미터와 1대1 매핑이 되어야 한다.
그렇다면 인자의 개수가 다를 때 함수를 여러 개 생성해 주어야 하는가?

log('hello world');
log('hello ts', 'abc');

Optional Parameter를 사용하면 해결 할 수 있다.

function log(a: string, b?: string) {
  
}

// 정상 동작
log('hello world');
log('hello ts', 'abc');

0개의 댓글