Skip to content

1. 기본 타입(Type)


1. String 타입

  • 타입이 문자열인 경우 다음과 같이 선언해서 사용한다.


let str: string = "hi";


Note

  • 위와 같이 :를 이용하여 자바스크립트 코드에 타입을 정의하는 방식을 타입 표기(Type Annotation)라고 한다.


2. Number 타입

  • 타입이 숫자이면 다음과 같이 선언한다.


let num: number = 10;


3. Boolean 타입

  • 타입이 진위 값인 경우에는 다음과 같이 선언한다.


let isLoggedIn: Boolean = false;


4. Object 타입

  • 타입이 객체인 경우에는 다음과 같이 선언한다.


let obj: object = { name: "NAME", age: 29 };


  • 하지만 object로 정의하는 경우 타입 검사에 엄격한 타입스크립트를 사용하는 목적이 애매모호해진다.


  • 위와 같이 동작하지 않도록 interface를 구현하여 객체의 타입을 정의할 수 있다.


interface IUser {
  name: string;
  age: number;
}

let obj: IUser = { name: "NAME", age: 29 };


  • 또는 interface와 유사한 type으로도 구현할 수 있다.


type IUser = {
  name: string;
  age: number;
};

let obj: IUser = { name: "NAME", age: 29 };


5. Array 타입

  • 타입이 배열인 경우 간단하게 다음과 같이 선언한다.


let arr: number[] = [1, 2, 3];


  • 또는 다음과 같이 제네릭을 사용할 수 있다.


let arr: Array<number> = [1, 2, 3];


6. Tuple 타입

  • 튜플은 배열의 길이가 고정되고 각 요소의 타입이 지정되어 있는 배열 형식을 의미한다.


let arr: [string, number] = ["hi", 10];


  • 만약 정의하지 않은 타입, 인덱스로 접근할 경우 오류가 난다.


7. Enum 타입

  • 이넘은 C, Java와 같은 다른 언어에서 흔하게 쓰이는 타입으로 특정 값(상수)들의 집합을 의미한다.


enum Avengers {
  Capt,
  IronMan,
  Thor,
}
let hero: Avengers = Avengers.Capt;


8. Any 타입

  • 기존에 자바스크립트로 구현되어 있는 웹 서비스 코드에 타입스크립트를 점진적으로 적용할 때 활용하면 좋은 타입이다.
  • 단어 의미 그대로 모든 타입에 대해서 허용한다는 의미를 갖고 있다.


let str: any = "hi";
let num: any = 10;
let arr: any = ["a", 2, true];


9. Void 타입

  • 변수에는 undefinednull만 할당하고, 함수에는 반환 값을 설정할 수 없는 타입이다.


let unuseful: void = undefined;
function notuse(): void {
  console.log("sth");
}


10. Never 타입

  • 함수의 끝에 절대 도달하지 않는다는 의미를 지닌 타입이다.


function neverEnd(): never {
  while (true) {}
}

References