JS의 문제점이 무엇인가?

홍범선·2023년 10월 20일
0

타입스크립트

목록 보기
1/34
function add(var1, var2){
  return var1 + var2;
}

console.log(add(1,2));
console.log(add(1,'2')); // 1이 string값으로 변경되고 '1' + '2' ='12'인 스트링 타입이 된다.
console.log(add('1', '2'));

// typeof runtime에 체크를 할 수 있다.
function addTypeSafe(num1, num2){
  if(typeof num1 === 'number' && typeof num2 ==='number'){
    return num1 + num2;
  }else{
    throw Error('숫자만 파라미터에 입력해주세요');
  }
}
console.log(addTypeSafe(1,2));
console.log(addTypeSafe(1,'2'));

js는 다른 언어들과 다르게 타입을 선언하지 않는다. 이로 인해 발생하는 문제점이 많고 유지보수 측면에서도 어려움을 겪는다.

예를 들어
console.log(1+2) => 3
console.log(1 + '2') => 12
console.log('1' + '2') => 12이다.
이렇게 원하지 않는 결과가 나올 수 가 있다.

그래서 Type을 체크하고 계산하는 것도 하나의 방법이 될 순 있다. 하지만 Type을 체크하는 함수를 일일히 만들어야 하고 파라미터자체에서 에러를 인지하지 못한다.

타입스크립트로 해결하자

function add(num1: number, num2: number){
  return num1 + num2;
}

console.log(add(1,2));
console.log(add(1,'2'));

타입스크립트는 파라미터에 타입을 선언할 수 있다. 만약 add(1, '2')를 호출하면 '2' 에 빨간색 언더라인이 표시되고 실행하면 에러가 출력된다.

profile
알고리즘 정리 블로그입니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN