타입스크립트 기초2 - Primitive Type, Object Type

eeensu·2023년 7월 30일
0

typescript

목록 보기
4/22
post-thumbnail

Primitive type의 특징

  • number 타입은 16진수, 10진수, 2진수 등 다양하게 표현이 가능하다.

  • nullundefined과 유사하지만, 해당 데이터는 값을 가지지 않음을 명시하는 타입이고, undefined는 데이터를 아직 할당하지

  • primitive type은 literal 값으로 primitive 타입의 서브타입을 나타낼 수 있다.
    예를 들어, trueboolean의 타입을 나타내는 서브타입이며, 'hellow world'는 string의 타입을 나타내는 서브타입이며, 25.512 는 number라는 타입의 서브타입이다.

  • new 를 통해 wrapper 객체로 만들 수 있다. new Boolean(false); new String('hi'); new Number(123); 도 가능하지만 이 방법은 객체이기 때문에 object형태로 된다. 따라서 ts는 이 방법을 권장하지 않는다.

  • null 타입은 런타임에서 typeof 를 통해 알아보면, object로 나온다

  • NaN 은 not a number의 약자로 숫자가 아님을 나타내는 특별한 타입이며, 이 타입 또한 number 타입이다

  • 중간에 언더바를 통해 숫자를 표현하는 것이 가능하다

let underscoreNum: number = 1_000_000;
  • nullundefined는 기본적으로 모든 타입들의 서브타입이다. 하지만 컴파일 옵션에서 --strictNullChecks가 기본적으로 체크되어있기 때문에 nullundefinedvoid나 자기 자신들에게만 할당할 수 있다. 이를 해제하면 numbernull 또는 undefined를 할당할 수 있다는 뜻이다.

  • ts에서 nullundefined 값은 실제로 각각 nullundefined이라는 타입을 가진다. void와 마찬가지로 그 자체로는 그다지 유용하진 않다. 둘다 소문자만 존재하며 이 변수들에 할당할 수 있는 것들은 거의 없다.



object type의 특징

  • 다음 예시를 오브젝트 리터럴 타입이라 한다
const person1 = { name: 'eunsu', age: 36 }; 
// 위 타입은 'object'가 아닌 { name: string, age: number }
// 이렇게 나오고, 이런 것들을 오브젝트 리터럴 타입이라 한다
  • object의 property가 없을 때는 undefined로 반환된다. 런타임에서 typeof 연산자를 이용해서 알아내면, undefined이다

  • Tuple의 순서는 중요하며, 값의 순서와 동일해야 한다. 또한 Tuple은 js의 구조분해할당 문법이 가능하다.

  • object도 타입으로 지정할 수는 있지만, 잘 사용하지는 않는다. 적용되는 범위가 매우 크기 때문에 ts를 사용하는 의미가 퇴색되기 때문이다.
    let obj: object ={ };

profile
안녕하세요! 26살 프론트엔드 개발자입니다! (2024/03 ~)

0개의 댓글