[TypeScript] TypeScript란?(js대신 사용하는 이유)

jini.choi·2023년 8월 7일

TypeScript

목록 보기
1/4
post-thumbnail

JavaScript대신해 TypeScript를 사용하는 이유

  • 타입 안정성
    - 버그가 줄어듬
    - 런타임 에러가 줄어듬
    - 생산성이 늘어남

js는 에러에 관대함

  • 일반적인 에러
    number타입으로 두개의 인자를 받아야되는 함수가 있는데,
    js같은 경우 인자를"XXX"를 보내줘도 에러를 띄우지 않고 NaN를 리턴한다.
function divide(a, b){
	return a/b
}

console.log(divide("XXX")) -> NaN
  • 런타임 에러 - 콘솔 안에서 일어나는 에러
    js는 유저의 컴퓨터에서 코드가 실행되고 난 뒤 에러를 발생시킴
    좋은 프로그래밍 언어라면 jini객체를 분석해서 hello()함수가 없다는 것을 개발자에게알려주고 코드실행이 되면 안됨
const jini = {name : "jini"}

jini.hello()
-> 에러발생

TypeScript이란?

  • strongly typed(강타입)프로그래밍 언어
  • 동적인 js언어네 타입을 미리 부여하여 컴파일 시 에러를 잡는다.

1. 에러예방

  • 사전에 오류를 디버킹 할 수 있고, 이것은 나중에 디버깅하는 시간을 줄여주기때문에 생산성이 늘어난다.
let a:number;

a= "a";

-> IDE(vscode)에서 string은 number에 할당할 수 없다고 경고가 뜬다.

2. 실행속도
위에 런타임 에러 - 콘솔 안에서 일어나는 에러 예시와 같이 컴퓨터에게 오류가 있는지 없는 지 체크를 하라고 하기 전에 사람(개발자)이 코드 작성 시 사전에 오류를 체크하고, 타입을 미리 결정하기 때문에 실행속도가 빨라진다.

3. 협업용이성, 안정성

  • 다른사람 혹은 미래의내가 코드를 읽을 경우 타입이 명시되어있기 때문에 타입이 어떤것인지 바로 확인할 수 있고, 컴파일 시 오류를 찾기 때문에 안정적이다.

4. 슈퍼셋

  • 타입스크립트는 js의 슈퍼셋, 즉 js +알파이다.
    js와 100%호환되고, 이 외에 클래스, 인터페이스 등 객체지향 프로그래밍 패턴을 제공한다.
    js의 단점은 줄여주고 대신 더 좋은 기능들을 감쌈 형태이다.

5.명시적 표현

  • 아래와 같이 변수가 아직 할당이 되어있지 않거나 let b = [] 와 같이 typescript에서 추론할 수 없는 경우 명시적 표현을 사용하여 타입을 지정한다.
    이러한 경우가 아닐 경우 명시적 표현을 최소한으로 사용하여 typescript가 타입을 추론하게 하도록 하여 코드를 줄여주자.
let a
let b = []

-> let a:number;
-> let b : number[] = []

참고
https://nomadcoders.co/typescript-for-beginners
https://fomaios.tistory.com/entry/TS-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8TypeScript%EB%9E%80

profile
개발짜🏃‍♀️

0개의 댓글