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; }
에 없다면서 오류를 만들어낸다.
.ts
파일을 node로 실행시켜도 .js
로 인식한다.ts-node
가 필요하다.$ npm install ts-node
$ ts-node test.ts