타입으로써 {}와 object를 구분하는 것은 타입스크립트 프로그래머로써 매우 매우 중요합니다.
먼저 {} 타입으로 정의된 변수 객체에는 null과 undefined를 제외한 모든 것들을 할당할 수 있습니다. object 타입으로 정의된 변수 객체에는 원시타입 값을 제외한 모든 것들을 할당할 수 있습니다.
즉, object 타입으로 선언된 아래의 예제 코드를 참고하기 바랍니다.
let obj: object;
obj = {};
obj = [];
obj = new Date();
obj = () => {};
obj = /abc/;
obj = 10; // 오류
obj = "hello"; // 오류
obj = true; // 오류
obj = Symbol(); // 오류
obj = BigInt(10); // 오류
{} 타입으로 선언된 아래의 예제 코드도 있습니다.
let x: {};
x = {};
x = [];
x = 10;
x = "hello";
x = true;
x = () => {};
x = null; // 오류
x = undefined; // 오류
