객체의 모양을 알려주는 방법 2가지
type Team = "red" | "blue" | "yellow"
type Health = 1 | 5 | 10
type Player = {
nickname:string,
team:Team
health: Health
}
----
type User = {
name:string
}
type Player = User & {
}
const yeahapp : Player = {
name: "yeahh"
}
interface Player {
nickname:string,
team:Team
health: Health
}
----
interface User {
name:string
}
interface Player extends User { // 클래스와 비슷 | 객체지향 프로그래밍처럼 보임~
}
const yeahapp : Player = {
name: "yeahh"
}
둘은 거의 같지만 ... 짧고 간결하고 한번에 사용할 수 있는 interface가 좀 더 낫다는 의견이 많다.
typescript의 type, interface는 리액트에서 보면 proptypes와 비슷한 기능이다.
미리 객체의 모양을 알려주고 있기 때문이다.
하지만 차이점이라고 한다면 타입스크립트 내에서 사용한 type과 interface는 타입스크립트가 실행되기 전에 확인을 해준다.
proptypes는 코드 실행 "후"에 브라우저에 에러가 나타난다.
여기서 타입스크립트의 장점이 드러나는거 같다.
자바스크립트는 콘솔창에 뜨기 때문에 런타임 오류?가 있기 때문에 사용자도 에러를 함께 확인하는데,
타입스크립트는 코드 실행 "전"에 에러가 나타나기 때문에 타입스크립트가 더 옳다(?)고 생각한다.
하지만 결론적으로 보면.... 타입스크립트 아직도 너무 어렵다.