[TS] enum과 타입

단비·2023년 3월 6일
0

인강

목록 보기
3/15
  • enum
    • 컴파일된 js를 확인해보면 enum은 함수로 변환되어 있음. js에선 enum을 지원하지 않기 때문

    • 값을 설정해주지 않을 경우 기본값은 인덱스값으로 출력됨

      enum enum1{
          H = "H",
      }
      enum enum2{
          H,
      }
      
      const category1: enum1 = enum1.H; // H
      const category2: enum2 = enum2.H; // 0
      const category3: "H" | "K" | "E" = "H" // 일회용

  • 리턴 타입
    • return 값의 타입을 지정할 수 있음

    • void: return 값이 없음

    • never: 항상 오류를 출력하거나 리턴 값을 절대로 내보내지 않음을 의미

      function add(a: number, b: number): string{
          return String(a + b);
      }
      function add(a: number, b: number): void{ 
          console.log("Hello world")
          return; // void일 경우 return 후 바로 세미콜론
      }
  • 함수의 타입
    • 변수에 담은 후 사용(일회용이 아닌 다회성 사용에 용이)

    • 호출 시그니처
      - 함수의 타입을 지정
      - 함수에 함수를 인수로 전달하거나, 함수를 반환하는 경우 이 문법을 통해 인수나 반환 함수의 타입을 지정

      const multiple1: (a: number, b: number) => () => number = (a: number, b: number): () => number => {
          return () => {
              return a * b * 2;
          }
      }
      type subMultiFunc = () => number; // 호출 시그니처
      type mainMultiFunc = (a: number, b: number) => subMultiFunc;
      const multiple3: mainMultiFunc = (a: number, b: number): subMultiFunc => {
          return () => {
              return a * b * 2;
          }
      }
  • 타입
    • 타입의 사용처는 함수 또는 타입이 길어질 때 사용
  • 함수의 에러
    • throw에 에러코드를 입력

      function sendError(): never{
          throw{ errorCode: 500, message: "internal server error"}
      }

  • undefined
    • 느낌표
      • 변수 뒤에 ! 를 붙일 경우 null , undefined 이 될 수 없다는 뜻으로 컴파일 시 에러가 발생하지 않음
    • 물음표
      • null 또는 undefined 면 실행을 멈추고 undefined 를 리턴
    • undefined
      • 값 자체가 없지만 나중엔 해당 변수에 number 타입을 삽입할 수 있음

      • null과의 차이점: null은 빈 값을 의미하고 undefined는 값 자체가 없는 것을 의미

        let a: number | undefined = undefined
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글