readonly -> TypeScript에서 등장한 키워드
객체의 속성을 불변으로 만든다. 클래스의 속성이나 인터페이스의 속성을 변경할 수 없게 만듦
any -> 어떤 타입의 값이든 저장할 수 있다는 의미 / 최상위 타입
unknown -> 모든 타입의 값 저장 가능. 그러나 다른 타입의 변수에 할당할 때 한 번 명시적으로 확인해줘야 함(Type Assertion : 타입 단언)
union -> 여러 타입 중 하나를 가질 수 있는 변수를 선언, '|' 연산자로 여러 타입 결합해서 사용
enum → 간단한 상수 값의 경우 적합
enum UserRole {
ADMIN = "ADMIN",
EDITOR = "EDITOR",
USER = "USER",
}
object literal(객체 리터럴) → 복잡한 구조 + 다양한 데이터 타입이 필요한 경우에 적합
const obj = {
a: [1,2,3],
b: 'b',
c: 4
}

npm init -y
tsc --init --rootDir ./src --outDir ./di
st --esModuleInterop --module commonjs --strict true --allowJS true --checkJS true