[Study] TypeScript

조혜인·2022년 7월 21일
0
post-thumbnail

📌 TypeScript

자바스크립트에 타입을 강제시키는 언어이다.

기존 JavaScript는 타입에 상관없이 값들이 변수에 들어가므로 매우 위험하다. 예를 들자면, 경매서비스에서 1인당 글쓰기 권한을 최대 5개로 지정해놓았다. 어느날 보니 누군가가 게시글을 5개 이상 쓰며 게시판을 동일한 글로 도배를 해놓았다. 로직은 분명 다 들어갔다고 하는데 기능이 작동하지를 않았다. 코드를 열어보니 작성한 게시글 갯수를 표현해주는 변수에 "011111111" 이라는 값이 들어가있었다!!! JavaScript에서는 타입을 지정해주지 않기 때문에 문자열로 선언된 후에 +1을 해주면 변수의 값이 1(정수)이 되는게 아니라 "01"(문자열)이 되어버린다. 여기서 타입 지정이 얼마나 중요한 지 알 수 있다.

TypeScript에서는 타입 지정을 해주기 때문에 위와 같은 문제가 발생하지 않는다.
아래는 JavaScript와 TypeScript 표현의 차이점 예시이다.

/* JS에서는 가능 */
let aaa = "안녕하세요"
aaa = 123				//처음 선언할 때는 String타입이었는데 123과 같은 정수를 대입해도 전혀 문제가 없다.

/* TS에서는 안됌 */
let aaa:string = "안녕하세요"
aaa = 123     //error!! => 선언할 때에 이미 타입이 지정되어있으므로 123과 같은 정수의 값은 대입할 수 없다.

TypeScript에서는 꼭 타입을 붙여줘야할까?

  • 타입은 꼭 붙여주어야 한다. 그런데 만약 선언할 때 타입 선언을 안하고 값을 대입했을 경우 TypeScript는 해당 값을 통해 타입을 추론하여 개발자가 알려주지 않더라도 변수의 타입을 명시해놓는다.

  • 만약 변수가 가질 수 있는 타입이 2개 이상이라면? 아래와 같이 선언하여 사용할 수 있다.

let ccc: number | string = 1000     /*number도 되고 나중에 string도 할 수 있어!*/
ccc = "1000원"

VS Code사용 시 설치 방법

  • Nestjs로 new하며 새로운 개발용 폴더 째를 만든다면 굳이 아래와 같이 커맨드를 이용하여 설치할 필요 없다.
yarn init
yarn add typescript --dev
yarn add ts-node
profile
코딩은 역시 재밌군

0개의 댓글