[TIL] 23.03.15 TS 핸드북 - Typeof Type Operator

2023. 3. 16. 01:23·TIL
반응형

https://www.typescriptlang.org/ko/docs/handbook/2/typeof-types.html

 

Documentation - Typeof Type Operator

타입 컨텍스트에서 typeof 연산자 사용하기.

www.typescriptlang.org

typeof 타입 연산자

자바스크립트에 이미 typeof 연산자가 있다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/typeof

 

typeof - JavaScript | MDN

typeof 연산자는 피연산자의 평가 전 자료형을 나타내는 문자열을 반환합니다.

developer.mozilla.org

 

타입스크립트는 타입 컨텍스트에서 변수나 프로퍼티의 타입을 추론할 수 있는 typeof 연산자를 추가한다.

let s = 'hello';
let n: typeof s; // let n: string

 

이는 기본 타입에서는 별로 유용하진 않지만, 다른 타입 연산자와 함께 사용해 많은 패턴을 편리하게 표현할 수 있다.

 

예를 들어, 미리 정의된 유틸리티 타입인 ReturnType<T>부터 살펴보면, 해당 타입은 함수 타입을 받으면서 반환되는 타입을 리턴한다.

type Predicate = (x: unknown) => boolean;
type K = ReturnType<Predicate>; // type K = boolean

 

ReturnType은 함수 타입을 받기 때문에 함수 이름을 넣으면, 오류가 발생한다.

function f() {
  return { x: 10, y: 3 };
}

// ERROR: 'f' refers to a value, but is being used as a type here. Did you mean 'typeof f'?
type P = ReturnType<f>;

 

따라서 값과 타입은 같지 않다는 것을 명심하자. 값 f의 타입을 추론하기 위해 typeof를 사용한다.

type P = ReturnType<typeof f>; // type P = { x: number; y: number; }

 

반응형

'TIL' 카테고리의 다른 글

[TIL] 23.03.13 타입스크립트에서 효율적으로 상수 관리하기  (0) 2023.03.14
[TIL] 23.03.08 TS 핸드북 - More on Functions  (0) 2023.03.09
불필요한 node_modules 한번에 삭제하기  (0) 2023.01.31
[TIL] 23.01.26 패키지 잠금 파일(package-lock.json, yarn.lock)  (0) 2023.01.27
[TIL] 23.01.17 프리온보딩 챌린지 3회차  (0) 2023.01.18
'TIL' 카테고리의 다른 글
  • [TIL] 23.03.13 타입스크립트에서 효율적으로 상수 관리하기
  • [TIL] 23.03.08 TS 핸드북 - More on Functions
  • 불필요한 node_modules 한번에 삭제하기
  • [TIL] 23.01.26 패키지 잠금 파일(package-lock.json, yarn.lock)
SH_Roh
SH_Roh
  • SH_Roh
    혼자공부끄적끄적
    SH_Roh
  • 전체
    오늘
    어제
    • 분류 전체보기 (159)
      • FE (39)
        • HTML, CSS (3)
        • Javascript (17)
        • React (11)
        • Next.js (4)
      • Network (1)
      • DevOps (4)
      • Git (1)
      • Trouble Shooting (24)
      • Algorithm (41)
        • Python (2)
        • Data Structure, Algorithm (7)
        • Problem Solving (31)
      • Education (23)
        • Elice AI Track (4)
        • Wanted Pre-Onboarding FE Co.. (19)
      • TIL (25)
      • Etc. (1)
        • 회고 (1)
        • 그냥저냥 (0)
  • 링크

    • Github
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
SH_Roh
[TIL] 23.03.15 TS 핸드북 - Typeof Type Operator
상단으로

티스토리툴바