타입스크립트의 인터페이스는 상호 간에 정의한 약속 혹은 규칙을 의미한다. 보통 다음과 같은 범주에 대해 약속을 정의할 수 있다.
🔘 객체의 스펙(속성과 속성의 타입)
🔘 함수의 파라미터
🔘 함수의 스펙(파라미터, 반환 타입 등)
🔘 배열과 객체를 접근하는 방식
🔘 클래스
🔸예제
interface MyAge { age: number; } function Age(obj: MyAge) { console.log(obj.age); } let person = { name: 'Capt', age: 28 }; Age(person);
🔸읽기 전용으로만 하고 싶은 경우에는 readonly 사용 수정❎
interface MyAge { readonly age: number; } let person: MyAge = { age: 28 }; person.age = 27; // 에러 발생
🔸읽기 전용 배열
🔘 배열을 선언할 때 ReadonlyArray 타입을 사용하면 읽기 전용 배열을 생성할 수 있습니다.
let arr: ReadonlyArray<number> = [1,2,3]; arr.splice(0,1); // error arr.push(4); // error arr[0] = 100; // error
interface login { (username: string, password: string): boolean; }
반환값의 타입도 정한다
let loginUser: login; loginUser = function(id: string, pw: string) { console.log('로그인 했습니다'); return true; }