[원티드 프리온보딩] TypeScript 2주차 - 1

leewol·2022년 9월 12일
0

프리온보딩

목록 보기
3/5

0. TypeScript 마이그레이션 과제

  • TypeScript I prefix
    • 사용하지 않기를 권장하나 나는 어떻게 생각하는지가 중요
  • # : private, JS 문법
    • private : private, TS 문법
    • 이것도 본인의 기준에 따라 선택!
  • JS에도 void가 있다..
  • ts-loader vs. babel-loader
  • as : type assertion, 타입 단언, 개발자가 강제로 타입을 선언
    • 과도하게 사용하면 any와 다름없음
  • 프로그래밍 언어에서 keyword (예약어) : 이미 약속되어 있는 단어
  • shorthand property
  • 타입을 이용해 타입 만들기!
    • extends, Omit, Pick ...
  • 에러 잘 던지는 습관! 방어 코드!
  • new.target 이용
  • CSS 이름 방법론 3가지 참고
  • 객체/DOM 접근 줄이기
  • keyof : TS 문법

1. 타입 가드

  • Type Narrowing (타입 좁히기)
  • constlet의 타입
    • 재할당이 될 수 있는 str2의 타입은 string, 아닌 const는 문자열 자체가 타입이 됨
    const str1 = "HELLO"; // "HELLO"
    let str2 = "HELLO"; // string
  • 타입 추론을 유도하자 -> 추론이 되지 않는다면 타입을 달자 -> 에러가 나면 타입을 잘 다는데 런타임은? 어떻게 해야 할까? -> 타입 가드!!
    • Soundness 특성 때문에 타입스크립트는 런타임에 개입하지 않고 개발자에게 권한을 준다!
    • cf) prop type은 런타임에 개입
  • 타입스크립트를 쓴다고 해서 모든 코드가 안전성을 갖추게 되는 것이 아니므로 검사 과정이 필요
  • ! : Non-null assertion, 타입스크립트 컴파일러 개입 X
  • unknown 타입 : any와 같은 의미이지만 에러를 발생시킴 -> 타입 가드 유도
  • 타입 좁히기와 타입 가드를 이용해야 안전한 APP을 만들 수 있음!
profile
간살간죽 개살개죽

0개의 댓글