<aside> ❗ 내가 직접 만드는 ‘데이터 타입’

</aside>

interface Person {
	name: string
	age**?**: number
}

const p1: **Person** = { name: 'Lee', age: 30 }

indexable 속성

interface Person {
	name: string
	age?: number
	[index: string]: any
}

const person: Person = {
	name: 'Lee',
	**systers**: ["sung", "chan"]
}

interface 내부 함수

interface Person {
	name: string
	age: number
	**hello(): void**
}

const person: Person = {
	name: 'Lee',
	age: 30,
	**hello: function(): void {
		console.log('안녕하세요! ~~~)	
	}**
}

interface 구현

interface IPerson {
	name: string
	age?: number
	hello(): void
}

**class** Person **implements** IPerson {
	name: string
	age?: number | undefined

	**constructor**(name:string) {
		this.name = name
	}
	hello(): void {
		console.log('~~')
	}
}

const person = new Person('Lee')

interface 상속

interface IPerson {
	name: string
	age?: number
}

interface IKorean **extends** IPerson {
	city: string
}

const k: IKorean = {
	name: 'Lee'
	city: '서울'
}