typescript 객체 구조분해 할당

LEEJAEJUN·2023년 7월 14일
0

react-typescript

목록 보기
7/7

궁금증

JavaScript 환경에서는 객체에 속성을 만들지 않고도 값을 불러올 수 있다.
그렇다면 TypeScript에서는 어떨까?

const obj = {
	a: 1,
  	b: 2,
  	c: 3,
};

const { a, b, x = 4 } = obj // x는 없지만 불러올 수 있음. 기본값 4

console.log(x) // 4

obj라는 객체에 x라는 속성은 없다. 하지만 x를 출력하면 4로 정상 출력된다.

실습

test.ts 파일을 만들고 같은 코드를 실행시켰다.

TSError: ⨯ Unable to compile TypeScript:
test.ts:13:15 - error TS2339: Property 'x' does not exist on type '{ a: number; b: number; c: number; }'.

속성 x는 obj의 타입인 { a: number; b: number; c: number; }에 없다면서 오류를 만들어낸다.

결론

  • 타입스크립트를 쓰는 이유가 명확해졌다.
    • 실수로 객체에서 없는 값을 불러오는 오류를 미연에 방지할 수 있기 때문이다.
  • node는 자바스크립트 환경에서 돌아가기 때문에 type을 이해하지 못한다.
    • .ts 파일을 node로 실행시켜도 .js 로 인식한다.
  • 타입스크립트를 VScode 터미널에서 실행시키려면 ts-node가 필요하다.
    $ npm install ts-node
    $ ts-node test.ts
profile
always be fresh

0개의 댓글