더북(TheBook)

2.7.4 { }, Object

이전에 한 번 언급했던 {} 타입도 있습니다. 객체로 오해할 수 있지만 이 타입은 nullundefined를 제외한 모든 값을 의미합니다.

const str: {} = 'hello';
const num: {} = 123;
const bool: {} = true;
const obj: {} = { name: 'zero' };
const arr: {} = [];
const func: {} = () => {};
const n: {} = null; 
// Type 'null' is not assignable to type '{}'.
const u: {} = undefined; 
// Type 'undefined' is not assignable to type '{}'.

다만 {} 타입인 변수를 실제로 사용하려고 하면 에러가 발생합니다.

const obj: {} = { name: 'zero' };
const arr: {} = [];
const func: {} = () => {}; 
obj.name;
// Property 'name' does not exist on type '{}'.
arr[0]; 
// Element implicitly has an 'any' type because expression of type '0' can't be used to index type '{}'. Property '0' does not exist on type '{}'.
func(); 
// This expression is not callable. Type '{}' has no call signatures.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.