객체의 스펙(속성과 속성의 타입
,팜수의 파라미터
,함수의 스펙(파라미터, 반환 타입 등)
,배열와 객체에 접근하는 방식
,클래스
와 같은 범주에 대해 계약을 정의할 수 있다.function sayName(obj: { name: string }) {
console.log(obj.name);
}
let person = { name: "june" };
sayName(person);
위와 같은 코드를 인터페이스를 추가하여 아래의 코드처럼 함수 매개변수 프로퍼티를 정의할 수 있다.
interface Person {
name: string;
}
function sayName(obj: Person) {
console.log(obj.name);
}
let person = { name: "june" };
sayName(person);
정의한 프로퍼티 값을 누락하거나 정의하지 않는 값을 인수로 전달 시 컴파일 에러가 발생한다.