타입스크립트

데브코스

목록 보기
78/131

타입스크립트

왜 필요할까?

  • JS 코드가 너무 지저분함
  • 코드 스케일이 커지면 코드 관리가 잘 안됨
    쓰면 좋은 점
  • JS 기반보다 버그를 줄일 수 있음
  • 유지보수가 쉬움
  • 강력한 높은 퀄리티의 코드 생산 가능

타입스크립트 = 자바스크립트 + 타입체크
TS환경에서 JS를 코딩하면 동작 <-> JS 환경에서 TS를 코딩하면 동작 X
(쉽게 말해서 TS가 더 상위 개념인 것)

  • 타입스크립트 실행 명령어는 tsc임.
    그래서 어떤 파일을 실행하고 싶다면 tsc app.ts
    이런 식으로 사용하면 돼
    tsc --init
    tsc -w app.ts : 자동으로 컴파일을 해줘서 자바스크립트에 변화를 주는 명령어

먼저 기초만 보자.

function plus(a, b) {
  return a + b;
}

이게 이제 전형적인 JS 코드고, 이걸 TS로 써보면

function plus(a: number, b: number) {
  return a + b;
}

이렇게 되는 것이다.

왜 데이터 타입이 중요할까?
JS 변수에는 어떤 데이터 타입의 값도 할당 될 수 있음
예를 들어서

let myName = "PCY";

이렇게 해놨는데, 누가 이거를 실수로

let myName = 1;

이렇게 바꿨다고 해보자. JS는 이런 문제들을 사전에 막지 못함. 그니까 JS에서는 저게 오류로 안 뜨는데, 저건 사실 오류임(이름에 1이 왜 들어가).
근데 TS는 이런걸 문제로 바로 잡아줌(Type 'number' is not assignable to type 'string' 이런식으로).
이게 바로 타입 추론(Type Inference)임.
TS는 타입 추론 기능을 통해 변수의 타입을 자동으로 판단할 수 있음.
TS 컴파일러가 초기에 할당된 값을 바탕으로 변수의 타입을 추론함.
타입 추론은 코드를 간결하게 작성할 수 있도록 도와주지만, 그래도 타입을 명시적으로 지정하는 것이 더 명확함.
특히 타입 추론이 모호한 경우나, 복잡한 로직에서는 타입을 명시해주는 것이 좋음.

타입스크립트에서는 다양한 데이터 타입을 지원함
크게 기본 데이터 타입, 객체 타입, 특수 타입으로 나뉨

  • 기본 데이터 타입
    • number: 숫자 타입. 정수와 실수를 포함
    • string: 문자열 타입
    • boolean: 참, 거짓을 나타내는 타입
    • null: 값이 없음을 나타내는 타입
    • undefined: 값이 할당되지 않은 변수의 기본값인 타입
  • 객체 타입
    • object: 객체를 나타내는 타입
    • array: 동일한 타입의 요소를 가진 배열을 나타내는 타입
    • tuple: 각 요소가 다른 타입을 가질 수 있는 배열을 나타내는 타입
  • 특수 타입
    • any: 어떠한 타입이든 할당될 수 있는 타입
    • unknown: 타입을 미리 알 수 없는 경우 사용되는 타입

타입 명시: 변수를 선언할 때 변수 값의 타입을 명시함으로써 변수의 데이터 타입을 지정

let x: string = "~";

함수의 매개변수들도 그냥 이렇게 하면 되고, 함수의 경우(리턴값)

function plus(a: number, b: number): number {
  return (a + b);
}

아무 값도 리턴하지 않으면 void를 사용해.
function plus(a : number, b: number): void {
}

이런 식으로!

profile
Dive Head First | Work Super Hard | Attract Great People

0개의 댓글