TypeScript interface

Sunki-Kim·2023년 7월 3일
0

TypeScript

목록 보기
2/3

인터페이스는 상호 간에 정의한 약속 혹은 규칙을 의미한다.
타입스크립트에서 인터페이스는 보통 다음과 같은 범주

  • 객체의 스펙
  • 함수의 파라미터
  • 함수의 스펙
  • 배열과 객체를 접근하는 방식
  • 클래스
    와 같은 범주에 대해 약속을 정의 한다.
 interface personInfo {
     age: number;
     name: string;
     job?: string; // optional
 }

 let person = {
     name: "Sunki",
     age: 31,
 }

 function logAge(obj: personInfo ) {
     console.log(obj.name) // Sunki
     console.log(obj.age); // 31
 }

logAge(person); // 31

인자를 받을때 단순히 타입뿐만 아니라 객체의 속성 타입까지 명시가 가능하며, 항상 인터페이스의 속성 갯수와 인자로 받는 객체의 속성 갯수를 일치시키지 않아도 된다. 조건만 만족 한다면 객체의 속성 갯수가 더 많아도 상관이 없어, 확장또한 가능하다.

옵션 속성 (?) 같은 경우는 속성을 선택적으로 적용 하면서 인터페이스에 정의 되어 있지 않은 속성에 대해서 인지가 가능하다.

// 읽기 전용 속성

interface CraftBeer {
    readonly brand: string
}

let myBeer: CraftBeer = {
    brand: 'asahi'
};

myBeer.brand = 'cass'; //  Cannot assign to 'brand' because it is a read-only property.

읽기 전용 속성으로 객체에 처음 생성할 때만 값을 할당하고 그 이후에는 변경할 수 없는 속성을 가질 수도 있다.

함수타입

// 함수 타입

interface login {
    (username: string, password: string) : boolean;
}

let loginUser: login;
loginUser = function (id:string, pw:string) {
    console.log('로그인 했습니다')
    return true;
}

소스코드

profile
당신에게 가치있는 Developer가 되고자

0개의 댓글