본문 바로가기
Language/TypeScript

[TypeScript] object vs. Object 차이점

by developerBeluga 2022. 8. 29.
728x90
반응형

 

 

간단하게 변수에 객체를 넣고 싶었다.

그런데 객체에 object와 Object가 있다는 것을 알았다.

 

문제점

text라는 변수에 object[]라는 타입을 지정했다.

일부러 string을 넣어보니 바로 타입 에러가 표시되어 잘못 지정해줬다는 것을 개발자에게 알려준다.

이럴 경우 코드 작성시 생길 수 있는 에러 확률을 현저히 낮춰준다.

 

하지만 Object[]를 주면 오류가 뜨지 않는다.

이럴경우 매우 당황스러운 순간이다.

어째서 object는 잡아주고 Object는 잡아주지 않는 것일까?

 

 

차이점

object의 경우 원시형이 아닌 모든 값들을 받을 수 있다.

즉, string, number, boolean, symbol, null, undefined가 들어오면 type 에러를 발생한다는 것이다.

하지만 원시형이 아닌 object나 array가 들어올 경우 type 에러가 발생하지 않는다.

 

Object는 모든 객체가 할당될 수 있다!

any처럼 모든 값을 넣어도 ok이기 때문에 Object을 쓰는 일을 자제하기로 하자.

 

 

 

 

728x90
반응형

댓글