2.7.4 { }, Object
이전에 한 번 언급했던 {} 타입도 있습니다. 객체로 오해할 수 있지만 이 타입은 null과 undefined를 제외한 모든 값을 의미합니다.
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.