Interface 정의
TypeScript에서 Object(객체)의 타입을 지정할 때 사용함 상호간에 정의한 약속 혹은 규칙을 의미
Object 정의 범주
- 객체의 스펙(속성과 속성의 타입)
- 함수의 파라미터
- 함수의 스펙(파라미터, 반환 타입 등)
- 배열과 객체를 접근하는 방식
- 클래스
예시
인터페이스
interface IProfile {
name: string
age: number | string
school: string
hobby?: string
}
객체 선언
let profile: IProfile = {
name: "철수",
age: 8,
school: "다람쥐초등학교"
}
profile.hobby = "수영" // 미리 지정된 속성이기 때문에 데이터 추가 가능!
profile.height = 180 // 🚨 기존 profile 객체에는 height가 없기에 데이터 추가 불가능!
특징
- 기본적으로 interface안에 지정한 속성들은 객체 선언 시 무조건 선언되어야 하고, 무조건을 원치 않다면 interface의 속성명 뒤에 물음표(?)를 붙힘(예시의 hobby속성 참고)
- interface를 생성할 때 넣지 않은 속성을 나중에 코드 내에서 추가할 순 없음(예시의 height속성 참고)