객체 타입
object 타입
// 😀 user는 object라는 타입으로 지정을 하고, 객체를 할당
let user: object = {
id: 1,
name: "한대희",
};
// 🔥 점 표기법으로 접근시 에러 발생
user.id
객체 리터럴 타입
// 😀 객체의 모든 프로퍼티에 타입을 지정
type object1 = {
id: number,
name: string
}
// 😀 변수에 만들어 둔 객체 리터럴 타입을 지정
let user: object1 = {
id: 1,
name: "한대희",
};
// 😀 아래의 방식으로도 지정할 수 있다.
let user: { id: number, name: string } = {
id: 1,
name: "한대희"
}
// 😀 점 표기법으로 접근 가능
user.id
type object1 = {
id: number,
name: string
}
// 🔥 user는 object1이라는 타입을 따르기 때문에 object1에 정의된 프로퍼티를 모두 입력해 줘야 한다.
// 🔥 아래의 경우는 id가 빠져 있기 때문에 오류가 날 것이다.
let user: object1 = {
name: 'hdh'
}
// 😀 위의 경우에서 id프로퍼티는 있어도 되고, 없어도 되게 할려면 id에 ?를 분이면 된다.
type object1 = {
id?: number,
name: string
}
// 😀 id가 없어도 오류가 나지 않는다.
let user: object1 = {
name: 'hdh'
}
type object1 = {
id: number,
name: string
}
let user1: object1 = {
id: 1,
name: 'hdh'
}
// 🔥 점 표기법으로 user1객체의 id 값을 바꿀 수 있다.
user1.id = 2
console.log(user1) // { id: 2, name: 'hdh' }
// 😀 그런데 만약에 id값은 외부에서 수정할 수 없게 하고 싶다면 앞에 readonly를 불여 주면 된다.
type object1 = {
readonly id: number,
name: string
}
// 😀 외부에서 값을 수정할려고 하면 에러가 발생한다.
let user1: object1 = {
id: 1,
name: 'hdh'
}
// 에러 발생
user1.id = 2