7월 28일 TIL

·2023년 7월 28일
0

타입과 인터페이스의 차이

강의를 들으면서도 헷갈렸던 부분에 대해서 알아보려고 한다..!
type이라는 키워드는 뭐고 interface는 뭐지?

type과 interface는 객체 타입의 이름을 지정하는 방법인 부분에서는 동일하다!

[type]

· 확장 방법 : 특수문자&

type TransportationType = {
 name: string
 price: number
 releaseYear: number
}

type CarType = TransportationType & {
 brand: string
}

· 선언적 확장 : 불가능 ❌, 새로운 속성 추가를 위해 다시 같은 이름으로 선언할 수 없다!, 오류 발생

type TransportationType = {
 name: string
 price: number
 releaseYear: number
}

type TransportationType = {
 category: string //❌
}

· type은 객체 뿐만이 아닌 기본 변수 형식의 타입 지정도 가능하다!
· computed value 사용 : 가능 ⭕

type names = 'firstName' | 'lastName'

type NameTypes = {
  // ⭕
  [key in names]: string
}

[interface]

· 확장 방법 : extends

interface TransportationInterface = {
 name: string
 price: number
 releaseYear: number
}

interface CarInterface extends TransportationInterface {
 brand: string
}

· 선언적 확장 : 가능 ⭕

interface TransportationInterface = {
 name: string
 price: number
 releaseYear: number
}

interface TransportationInterface = {
  category: string //⭕
}

· 인터페이스는 객체에만 사용이 가능하다!
· computed value 사용 : 불가능 ❌

type names = 'firstName' | 'lastName'

interface NameInterface {
  // ❌
  [key in names]: string
}
profile
코린한별

0개의 댓글