[TS] 객체와 인터페이스

로움·2022년 5월 19일
0

타입스크립트

목록 보기
2/14

object타입은 인터페이스와 클래스의 상위 타입이다.
object타입으로 선언된 변수는 number, boolean, string 타입을 가질 수는 없지만, 속성 이름이 다른 객체를 자유롭게 담을 수 있다.

let o:object = {name: 'jack', age: 32}
o = {first: 1, second:2} // error

타입스크립트의 인터페이스 구문은 두 번째 코드에 에러를 뱉는다.
변수 o에는 항상 name,age 속성으로 구성된 객체만 가질 수 있게 하기 때문이다.

인터페이스 선언문

타입스크립트에서는 객체의 타입을 정의할 수 있게 하는 interface라는 키워드를 제공한다.
인터페이스의 목적은 객체의 타입을 정의하는 것이다.
따라서 객체를 의미하는 중괄호 {} 로 속성의 이름과 타입을 나열하는 형태로 사용한다.

interface name{
	id: type
}

선택 속성 구문

인터페이스 설계시 어떤 속성은 있어도 되고, 없어도 되는 형태로 만들고 싶을 때가 있다.
이러한 속성을 선택속성이라고 한다.
속성 이름 뒤에 물음표를 붙여서 만든다.

익명 인터페이스

타입스크립트는 Interface 키워드도 사용하지 않고 인터페이스의 이름도 없는 인터페이스를 만들 수 있다.
이를 익명 인터페이스라고 한다.

let ai: {
	name: string
    age: number
    etc?: boolean
 } = {name: 'Jack', age: 32}

익명 인터페이스는 주로 다음처럼 함수를 구현할 때 사용한다.

function print(me: {name: string, age: number, etc?: boolean}) {
...
}
profile
FrontEnd 외길인생

0개의 댓글