[TypeScript] unknown, void, never 타입에 대해서 알아보자

2024. 10. 26. 16:47·Front end/TypeScript

TS에서는 JS에서만 있는 타입 뿐만 아니라 TS만의 타입도 가지고 있다. 이번에 포스팅 하는 3가지 타입이 그 예시이다. 시작하기에 앞서 간단히 이 타입에 대한 설명을 하자면 unknown은 모든 타입이 될 수 있는 타입이고, void는 아무것도 반환하지 않는 함수에 사용된다.

 

마지막으로 never는 절대 반환하지 않는 함수에서 사용된다는데 void랑 뭐가 다른지 잘 모르겠다. 강의의 예시로는 에러를 던지는 함수를 보여줬는데 조금 더 생각을 해봐야겠다.. 

 

+ 지피티한테 물어봤는데 void는 아무것도 반환하지 않는 메서드 즉, 콘솔출력 또는 이벤트 핸들러에서 주로 사용된다고 하고 never는 정상적으로 종료되지 않는 함수 즉 무한루프, 에러 던지기에 주로 사용된다고 한다. 


unknown

어떠한 타입도 될 수 있는 타입. 하지만 any와는 다르게 해당 타입을 확인 해야한다. 에를 들어 API가 어떤 타입을 반환하는지 모를 때 사용되거나 인풋이 여러 타입이 될 수 있을 때 사용된다. 

function check(temp : unknown){
	if(typeof temp === "number"){		// 이러한 타입 확인이 반드시 필요
    	//number 타입일 때 실행되는 코드
    }
    
    if (typeof temp === "string"){
    	//string 타입일 때 실행되는 코드
    }
    
    ...
}

function check(temp : unknown){
	temp + 2 	// 타입 확인이 없기 때문에 error 발생
}

 

void

어떠한 반환값을 가지지 않는 함수를 선언할 때 사용한다. C에서 사용했던 기억이 있는데 같은 기능을 수행한다고 한다. TS가 아무것도 반환하지 않는 함수를 자동으로 void로 인식하기 때문에 타입을 굳이 지정하지 않아도 된다. 

function hi(){
	console.log("배고파요")	//return이 없는 메서드
}

 

never

절대 반환되지 않는 함수를 선언할 때 사용. 해당 메서드가 정상적으로 종료되지 않을 때 사용된다.

function throwError(message: string): never {
  throw new Error(message);
}

function infiniteLoop(): never {
  while (true) {
    // 무한 루프이므로 종료되지 않음
  }
}

function hello(temp : number | string){
	if(typeof temp === 'number'){
    	// 여기서 temp의 타입은 number
    }
    
    elseif(typeof temp === 'string'){
    	// 여기서 temp의 타입은 string
    }
    
    else{
    	// 여기서 temp의 타입은 never
    }
}

 

사실 아직 never 타입에 대해서는 정확히 모르겠다. 뭐 더 배우다 보면 알겠지 하는 생각으로 일단은 넘어가려 한다. 나중에 확실히 알게되면 글을 수정할 생각이다. 

반응형
저작자표시 (새창열림)

'Front end > TypeScript' 카테고리의 다른 글

[TypeScript] 추상클래스란 무엇인가 (임시)  (0) 2024.10.30
[TypeScript] 다형성과 제네릭  (2) 2024.10.27
[TypeScript] Readonly , Tuple에 대해서 알아보자  (0) 2024.10.26
[TypeScript] 변수와 타입, 함수 생성  (1) 2024.10.24
'Front end/TypeScript' 카테고리의 다른 글
  • [TypeScript] 추상클래스란 무엇인가 (임시)
  • [TypeScript] 다형성과 제네릭
  • [TypeScript] Readonly , Tuple에 대해서 알아보자
  • [TypeScript] 변수와 타입, 함수 생성
re-hwi
re-hwi
재휘의 개발일기
    반응형
  • re-hwi
    Dvelopment blog
    re-hwi
  • 전체
    오늘
    어제
    • 재휘의 개발일기 (167)
      • 개발 (25)
        • 소프트웨어 공학 (25)
      • Python (18)
        • numpy (8)
      • OS (23)
        • 쉽게 배우는 운영체제 (23)
      • Front end (1)
        • HTML (6)
        • CSS (9)
        • JavaScript (18)
        • React (2)
        • Vue.js (5)
        • TypeScript (5)
        • Sass (3)
      • Algorithm (1)
        • 파이썬 알고리즘 인터뷰 (2)
        • 자료구조와 함께 배우는 알고리즘 (20)
      • Android (2)
        • 안드로이드 앱 프로그래밍 with 코틀린 (2)
      • Project (15)
      • Network (0)
      • etc (12)
        • 이것저것 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    numpy
    REACT
    typeScript
    scss
    자료흐름도
    뷰
    sass
    정보처리기사
    컴포넌트
    파이썬
    오블완
    JavaScript
    js
    HTML
    프론트엔드
    자료구조
    연결리스트
    CSS
    표
    타입스크립트
    정처기
    vue
    티스토리챌린지
    개발
    리액트
    TS
    플레이리스트
    pwa
    알고리즘
    FE
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
re-hwi
[TypeScript] unknown, void, never 타입에 대해서 알아보자
상단으로

티스토리툴바