TIL 23.12.18

전민석·2023년 12월 18일
1

TIL

목록 보기
35/52

Typescript

왜 타입스크립트를 써야하는가?

자바스크립트의 약점

  • runtime에 결정되는 변수 타입
    => 개발자의 실수로 인한 오류를 찾아내기 힘듬
  • 약한 타입 체크
    => 변수/상수를 구분하는 정도만 지원

타입스크립트

  • comfile때 변수의 타입 체크
    => 코드입력시 실시간으로 vscode에 에러메시지

타입스크립트의 강점

  • 코드의 안정성과 가독성이 높아짐
  • 다른 개발자가 이해하기 쉬움
  • 향후 유지보수 용이

컴파일러와 tsc

컴파일러 : 프로그래밍 언어도 작성된 소스코드 -> 다른 프로그래밍 언어로 변환
tsc(Typescirpt compiler) : 타입검사 및 코드 변환(ts->js)
tsc 명령어

  • tsc --init : tsconfig.json생성
  • tsc index.ts : index.ts를 컴파일
    tsd src/*.ts : src디렉토리 내 모든 ts파일 컴파일
  • tsc index.js --declaration --emitDeclarationOnly : @types 패키지를 위한 d.ts파일 생성

기본타입

  • boolean : 참/거짓
  • number : 숫자
  • string : 문자열
  • 배열
  • 튜플 : 서로 다른 타입의 원소가 순서를 가지는 특수한 형태의 배열
const person: [string, number, boolean] = ['Spartan', 25, false];
const person2: [string, number, boolean] = [25, 'Spartan', false]; // 오류!

push를 통해 정의돈 데이터 타입보다 더 저장 할 순 있지만 내부구조 변경 => 정해진대로

  • enum
    • 열거형 데이터 타입
    • 상수를 쉽게 접근하여 사용할 수 있게 하는 타입
    • number, string 값만 할당
    • 값이 설정되어 있지 않으면 숫자 0부터 시작
enum UserRole {
  ADMIN = "ADMIN",
  EDITOR = "EDITOR",
  USER = "USER",
}

enum UserLevel {
  NOT_OPERATOR, // 0
  OPERATOR // 1
}
  • any와 unknown : 둘다 모든 값을 받을 수 있음
    • any 와 unknown의 차이점
      unknown은 그 값을 다른 타입 변수에 할당시 명시적 타입확인 필요
    • unknown의 한계 : 재할당 하지 않으면 타입 안정성이 보장되지 않음
  • union( | ) : 여러 타입 중 하나를 가질 수 있는 변수 선언시 사용
    • 가변적 타입의 데이터 저장시 any(x) unknown(o)
      union으로 모든 타입 정의하는게 좋음

0개의 댓글