본문 바로가기
  • optimuslee
Nestjs

[Nestjs] 2-1. TypeScript와 각종 타입

by OptimusLee 2022. 3. 26.
728x90
반응형

 

 

javascript는 런타임 언어이기에 실제로 코드를 돌려보기 전까지 디버깅이 되지 않습니다. 이런 점에 불편함을 느껴 탄생한 언어가 Typescript입니다. 코드를 돌리 전에도 컴파일이 된 상태이기에 에러에 대한 내용을 바로 알려 줍니다. 물론 javascript를 여태까지 사용한 개발자들에게는 약간 어색할 수는 있지만 Nestjs는 기본적으로 Typescript를 기본 언어로 채택하고 있기에 Nestjs의 장점을 최대한 활용하기 위해서 우리는 Typescript의 기본 문법에 대해 먼저 알고 있어야 합니다. 

 

 

 

 

Typescript는 마이크로소프트에서 개발한 언어입니다. javascript는 타입이 없지만 Typescript는 말 그대로 특정한 타입을 지정할 수 있습니다. 또한 위에서 언급했다시피, 런타임에 에러가 발생할 가능성이 있는 코드를 정적 분석으로 찾을 수 있습니다. 또한 ES6에서 사용된 문법을 포함하고 있으며 클래스, 인터페이스, 상속, 모듈과 같은 객체 지향 프로그래밍 패턴을 제공하고 있습니다. 

 


 

TypeScript 기본 타입

 

string

let str: string="Hello  world!"

 

number

let num: number=10;

 

boolean

let isLoggedIn: boolean=false;

 

object

let obj: object={};

let obj:{name:string, age:number}={
name:"seungwon",
age:26
}

 

Array

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

let arr: Array<number>=[1,2,3];//제너릭을 사용하여 선언할 수 있다

 

Tuple

튜플은 배열의 길이가 고정되어있고 각 요소의 타입이 지정된 배열을 뜻합니다. 

 

let arr: [string, number]=["Hello world~!", 10]

 

enum

흔하게 쓰이는 타입으로 특정한 값들에 대한 집합입니다. 

 

enum Avengers {Capt, IronMan, Thor};

let hero: Avengers=Avengers.Capt;

또한 아래와 같이 인덱스를 사용자의 편의에 맞게 설정할 수도 있습니다. 

enum Avengers{ Capts=5, IronMan, Thor}

let hero: Avengers= Avengers[5]// Capts
let hero: Avengers= Avengers[6]//IronMan
let hero: Avengers= Avengers[7]//Thor

 

any 

말 그대로 모든 타입에 대해서 허용하겠다는 뜻입니다. 

 

let str: any="hello world~!";
let num: any=26;
let arr: any=[1, 2, "hi", true];

 

void 

해당 타입에는 undefinednull만 할당할 수 있으며 함수에는 반환 값을 설정할 수 없는 타입입니다. 

let unused: void = undefined;

function nothing: void {

 console.log("nothing~!");
 
 }

 

never 

해당 함수가 절대 끝나지 않을 때 사용하는 타입니다. 

 

function neverEnd(): never{

  while(true){
    // 실행할 내용

  }
}

 

728x90
반응형

'Nestjs' 카테고리의 다른 글

[Nestjs] 2-3. Typescript와 인터페이스  (0) 2022.03.26
[Nestjs] 2-2. TypeScript와 함수  (0) 2022.03.26
[Nestjs] 2. Nestjs를 배우기 전에...  (0) 2022.03.20
[Nestjs] 1-1. Nestjs에 대하여...  (0) 2022.03.20
[Nestjs] 1. 안녕!? Nest.js  (0) 2022.03.20