[231206] TS 타입 간의 상속 및 호환성

TS 타입 간의 상속 및 호환성

User
type Person = {
  name: string
  age: number
}

type Student = {
  name: string
  age: number
  department: string
}

function getPerson(): Person {
  return {
    name: "홍길동",
    age: 20,
  }
}

function getStudent(): Student {
  return {
    name: "홍고동",
    age: 20,
    department: "컴공",
  }
}

function talk(person: Person) {
  console.log(`hello ${person.name} my age is ${person.age}`)
}

const person = getPerson()
const stu = getStudent()

talk(person)
talk({
  name: "홍돈까스",
  age: 10,
})
talk(stu)
talk({
  name: "홍만두",
  age: 5,
  department: "홍과",
}) //타입 에러
  • 컴파일러가 한 번 거친 type 은 프로퍼티 명만 보고 판단함
  • 그래서 바로 object literal 사용해서 넣어준건 오류남

Categories:

Updated:

Leave a comment