typescript 가 nested object type 을 check하는 방법은
해당 type(object)의 최하위 key 가 전부 존재하는지이다
아래와 같은 User type을 선언했을 때
type User = {
name: string
car: {
company: string
number: number
}
}
아래 David 는 User가 맞다
const david = {
name: 'david',
car: {
company: 'bmw',
number: '1432',
},
}
그러나 typescript 의 object type check 에 의하면
아래 John 도 User가 맞다고 말한다
const john = {
name: 'john',
company: 'benz',
number: '7878',
}
object type의 최하위 key를 모두 포함한 object라면
즉, name
, company
, number
를 포함한 object라면
typescript는 해당 value(john)이 User type이 맞다고 확인한다
car가 object를 value로 가지지 않더라도
즉, nested 된 object 형태가 아니더라도
david와 john 은 다른 값이지만 같은 User type 이라고 확인한다