Typescript - 02

이강민·2022년 7월 11일
0

Typescript

목록 보기
2/16
post-thumbnail

타입스크립트 - 인터페이스

인터페이스

타입스크립트의 타입 계층도에서 object 타입은 인터페이스와 클래스의 상위 타입이다.

let o : object =  {name : "kangmin", age : 23}
o = {first : 2 , second : 3}

위와 같이 작성을 하면 객체의 value들은 타입이 정해지지 않아 어떤 타입으로와도 되며 심지어 key가 변경될 수 있다.
이렇게 동작하지 않도록 고안이 된 것이 인터페이스이다.

인터페이스 선언

interface 인터페이스 이름 {
  속성 이름[?] : 속성타입
}

인터페이스 예

interface IPerson {
  name : string
  age : number
// 선택 속성 구문
// 아래와 같이  ?을 사용하면 선택 하여 사용 할 수 있다.
  etc ?: boolean
}

// ? 을 사용한 변수는 적지 않아도 문제가 없다.
let o:IPerson = {name : "jack", age : 213}
// key가 동일한지와 값의 타입은 동일한지 확인하고 다르면 
// 타입체크에서 에러를 발생시킨다. 
o = {name : "kkk", age : 2, etc : true}
//console.log(o);

익명 인터페이스

interface 키워드를 사용하지 않고 인터페이스의 이름도 없는 인터페이스를 만들 수 있다.
이를 익명 인터페이스라고 하며 보통 함수를 구현 할 때 사용한다.

let ai : {
  name : string
  age : number
  etc ?: boolean
} = {name : "jack", age : 23}

// 위와 같이 선언한 익명 인터페이스는 아래와 같이 함수에서 많이 
// 사용된다.
// 함수에서 익명인터페이스를 사용하기 위해서는 매개변수도 인터페이스처럼 만들어야 한다. 
function print(me : {name : string, age : number, etc ?: boolean}){
  console.log(`${me.name}${me.age}입니다.`)
}

print(ai) //jack은 23입니다.
profile
AllTimeDevelop

0개의 댓글