FE RYAN
완벽하지 않으면 어때
FE RYAN
전체 방문자
오늘
어제

블로그 메뉴

  • 💾 깃허브 링크
  • 홈
  • 태그
  • 분류 전체보기 (151)
    • 개인프로젝트 (8)
      • 개인 포트폴리오 웹앱 (6)
      • 프론트엔드 기술면접 아카이빙 웹앱 (2)
    • 기록 (121)
      • 원티드 프리온보딩 인턴십 (0)
      • 코드스테이츠 프론트엔드 (75)
      • 생각들 (3)
      • Today I learned (32)
      • 회고 (9)
      • 리뷰 (1)
    • 개발 (17)
      • React (3)
      • Javascript (7)
      • CSS (1)
      • HTML (3)
      • HTTP (1)
      • 자료구조 (0)
      • 알고리즘 (2)
    • 코딩테스트 (2)
      • 백준 (2)
      • 프로그래머스 (0)
    • 디자인 (1)
      • UI & UX (1)
    • 수학 (0)
    • 자기계발 (0)

공지사항

인기 글

태그

  • 자바스크립트 딥다이브
  • HTML
  • 자바스크립트
  • 부트캠프
  • seb 39
  • 회고
  • Til
  • 프론트엔드
  • css
  • 메인프로젝트
  • 코드스테이츠
  • 원시타입
  • useMemo
  • 리액트
  • seb39
  • 타입스크립트
  • 포트폴리오
  • 신입개발자
  • 딥다이브
  • ES6

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
FE RYAN
기록/Today I learned

22.11.11 금 TIL

기록/Today I learned

22.11.11 금 TIL

2022. 11. 12. 17:43
728x90

1. 타입스크립트

1.1 TS 고유의 타입들 - unknown 타입

어떤 타입의 값이 들어올 지 모를 경우에(ex: api 호출의 결과) unknown 타입을 지정해줌으로써 어떤 작업을 하기 위해 unknown 타입을 지정한 변수의 값을 먼저 확인하도록 타입 프로텍션을 받을 수 있다.

예시코드

let a:unknown

if(typeof a === 'number'){
    let b = a + 1;
    
    a.concat('안될걸');
    // Property 'concat' does not exist on type 'number'.
}

if(typeof a === 'string'){
    let b = a.toUpperCase();
    
    let c = a * 1;
    // The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
}

1.2 TS 고유의 타입들 - void 타입

void 타입은 아무것도 리턴하지 않는 함수이다.

반환값이 없는 함수에서 따로 지정해주지 않아도 자동으로 타입스크립트가 타입 추론하여 void 타입으로 지정해준다.

function voidFunc1() {
    console.log('void');
}

function voidFunc2(arr: string[]) {
    arr.forEach((el) => el + 'hi');
}

const a = voidFunc2().toUpperCase(); // 리턴값이 없는 함수이기 때문에 에러발생.
// Property 'toUpperCase' does not exist on type 'void'.

1.3 TS 고유의 타입들 - never 타입

  • 리턴값이 없는 에러를 발생시키는 함수
  • 함수의 리턴값의 타입이 2가지 이상인 경우
  • 무한루프

함수가 절대 리턴하지 않을 때, 위와 같은 경우 never 타입이다.

function neverFunc1():never {
    throw new Error('에러');
}

function neverFunc2(name: string | number) {
    if (typeof name === 'string') {
       name += 'str';
    } else if (typeof name === 'number') {
        name++;
    } else {
        // 절대 실행되지 않는 코드
        name;
    }
}

const neverFunc3 = () => {
    while (true) {
        console.log('hi');
    }
}
728x90
저작자표시 비영리 변경금지 (새창열림)

'기록 > Today I learned' 카테고리의 다른 글

22.11.12 토 TIL  (0) 2022.11.12
22.11.10 목 TIL  (0) 2022.11.10
22.10.27 TIL - 포폴앱 타입스크립트 마이그레이션  (0) 2022.10.29
22.10.26 TIL  (0) 2022.10.26
22.10.25 TIL  (0) 2022.10.25
  • 1. 타입스크립트
  • 1.1 TS 고유의 타입들 - unknown 타입
  • 1.2 TS 고유의 타입들 - void 타입
  • 1.3 TS 고유의 타입들 - never 타입
'기록/Today I learned' 카테고리의 다른 글
  • 22.11.12 토 TIL
  • 22.11.10 목 TIL
  • 22.10.27 TIL - 포폴앱 타입스크립트 마이그레이션
  • 22.10.26 TIL
FE RYAN
FE RYAN

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.