강의를 들으면서도 헷갈렸던 부분에 대해서 알아보려고 한다..!
type이라는 키워드는 뭐고 interface는 뭐지?
type과 interface는 객체 타입의 이름을 지정하는 방법인 부분에서는 동일하다!
· 확장 방법 : 특수문자&
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
}
· 확장 방법 : 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
}