All Articles

TypeScript

TypeScript란 ??

javascript의 superset인 정적 타입 프로그래밍 언어이다.

TypeScript의 장점

컴파일 언어로 코드 수준에서 타입을 검사하여 오류를 잡아낼 수 있다.
코드의 가독성을 높이고 디버깅을 쉽게 해준다.
큰 규모의 프로젝트에서 복잡성을 최소화 해준다.
javascript의 최신 문법을 그대로 사용할 수 있으면서, babel과 같은 별도의 트랜스파일러를 사용하지 않아도 된다.
IDE를 포함한 다양한 도구의 지원을 받을 수 있다.(코드 어시스트, 리팩토리 등)

변수 타입 선언

let vari: number;
vari = 12345;

문자, 숫자 리터럴 타입

let num: 5 | 20 | 50; // 각 숫자가 타입 자체다.
let str: "개발자" | "건물주"; //각 단어가 타입 자체다.

any 타입

모든 종류의 값을 허용하는 타입.
남발하면 typescript를 사용하는 의미가 퇴색된다.(최소한의 사용)

void, never 타입

void는 아무 값도 반환하지 않고 종료되는 함수의 반환 타입.
never는 예외가 발생해서 비정상적으로 종료되거나 무한 루프로 종료되지 않는 함수의 반환 타입.

함수 타입

매개변수 타입과 반환 타입이 필요하다.

function func(name: string, age: number): string {}

위 코드에서 ()괄호 안에 name과 age는 매개변수이고, :의 오른쪽은 매개변수의 타입이다.
()괄호의 오른쪽 :의 오른쪽은 함수 반환 타입이다.

선택 매개변수, 속성

반드시 입력하지 않아도 된다.
매개변수나 속성 오른쪽에 ?를 입력하면 된다.

function func(name: string, age: number, adress?: string): string {}

interface Person {
  name: string;
  age: number;
  gender?: string;
}

인터페이스

다양한 타입들을 정의하는 데 사용한다.

//인터페이스로 객체 타입 정의
interface Person {
  name: string;
  age: number;
  gender: string;
}
//인터페이스로 함수 타입 정의
interface Func {
  (name: string, age: number, location= 'KR'): string;
}

Person 인터페이스의 모든 속성 타입을 만족해야 한다.(아니면 에러 발생)