타입스크립트 기초 공부 기록 <타입스크립트 교과서 > 2장 7(4-6) 기본 문법 익히기 :8일차

JongMin Seong·2024년 9월 13일
1

Typescript 공부

목록 보기
7/8

{} object

객체가 아닌 null과 undefined를 제외한 모든 값을 의미합니다

let anyValue: {} = 42;         // number
anyValue = "hello";            // string
anyValue = true;               // boolean
anyValue = { name: "Alice" };  // object
anyValue = [1, 2, 3];          // array

anyValue = null;      // 오류: null은 `{}` 타입에 할당할 수 없음
anyValue = undefined; // 오류: undefined는 `{}` 타입에 할당할 수 없음

대체로 {} 타입을 사용하는 대신, unknown이나 any 타입을 더 많이 사용했습니다 이들은 {}보다 더 유연하고 명확한 동작을 제공하고 다른 동료가 봤을때도 문제를 가지지 않았습니다.

{}와 object 타입의 차이:

{} 타입은 모든 타입의 값을 허용하지만, object 타입은 객체로 취급할 수 있는 타입만을 허용 object는 원시 타입(number, string, boolean 등)은 허용하지 않고, 배열이나 객체와 같은 참조 타입만을 허용

let obj: object = {};          // 객체
obj = [1, 2, 3];               // 배열도 허용
// 위에 코드와 대조적인 상황
let primitive: object = 42;    // 오류: 'number'는 'object' 타입에 할당 불가
primitive = "hello";           // 오류: 'string'은 'object' 타입에 할당 불가

never

any 타입의 값을 포함해 어떤 값도 가질 수 없다. 그래서 never 타입은 때때로 점유할 수 없는 또는 바닥 타입이라고 불린다.즉 어떠한 타입도 대입 불가하다.

never가 필요한 이유

불가능 하다가 TS에서 필요하다고 한다. 수학에서 0이 필요한거 같이 필요하다고 한다.
undefined, null, void 으로는 불가능을 나타낼 수 없기에 사용한다.

TS 불가능이라는 뜻 (아래 4가지)

  1. 어떤 값도 가질 수 없는 빈 타입
  2. 제네릭 및 함수에서 허용되지 않는 파라미터
  3. 호환 되지 않는 타입 교차
  4. 빈 유니언 타입 (유니언 했지만 아무것도 안되는 경우)

never 사용 예제

// 허용할 수 없는 함수 매개변수에 제한을 가한다.
function unknownColor(x: never): never {
   throw new Error("unknown color");
}


type Color = 'red' | 'green' | 'blue'

function getColorName(c: Color): string {
   switch(c) {
       case 'red':
           return 'is red';
       case 'green':
           return 'is green';
       default:
           return unknownColor(c); // 'string' 타입은 'never' 타입에 할당할 수 없음
   }
}

never VS void의 차이:

void는 함수가 값을 반환하지 않는 경우를 의미합니다. 하지만 함수는 정상적으로 종료됩니다. void는 주로 return이 없는 함수에서 사용됩니다.

function logMessage(message: string): void {
  console.log(message);
}

never는 결코 값을 반환하지 않는 경우를 의미하며, 함수가 정상적으로 종료되지 않거나, 도달하지 않는 코드입니다. never는 함수가 무한 루프에 빠지거나 예외를 던지는 상황에서 사용됩니다.

자료 출처

profile
개발 공부 기록

0개의 댓글