객체와 인터페이스

omnigi·2022년 2월 4일
0

Typescript Do it

목록 보기
2/23

타입스크립트의 타입 계층도에서 object 타입은 인터페이스와 클래스의 상위 타입입니다. object타입으로 선언된 변수는 number, boolean, string 타입의 값을 가질 수는 없지만, 속성이름이 다른 객체를 모두 자유롭게 담을 수 있습니다.

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

인터페이스 선언문

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

interface 인터페이스 이름 {
	속성이름[?]:속성타입 //속성이름 뒤에 ?가 붙으면 필수 데이터는 아니라는 뜻 이다.
}

인터페이스 속성들을 여러줄로 구현할 때는 쉼표(,)나 세미콜론(;)을 구분자로 쓰거나 줄바꿈만 해도 된다.

interface IPerson{
	name: string;
    age: number;
    bool? : boolean //없어도 상관없는 데이터[선택속성]
}

익명 인터페이스

타입스크립트는 interface키워드를 사용하지 않고 이름없는 인터페이스를 만들 수 있다.

let ai:{
	name:string
    age:number
    etc?:boolean
} = {name: "Jack", age:22}

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

function printMe(me: {name: string, age:number, etc?:boolean}){
	console.log(
    	me.etc ?
        	`${me.name} ${me.age} ${me.etc}` :
            `${me.name} ${me.age}`
    )
}

printMe(ai) // Jack 22

0개의 댓글