TYPESCRIPT

Typescript - Interfaces (Typescript์—์„œ Object์˜ ๋ชจ์–‘์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ• / ์ƒ์†๋ฐ›๊ธฐ_extends)

sophie0527 2022. 12. 23. 19:12

โœ… Typescript์—์„œ Object์˜ ๋ชจ์–‘์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ•

< ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ• >

type ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ธŒ์ ํŠธ์˜ ๋ชจ์–‘์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ•

 

< ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ• >

: interface ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ธŒ์ ํŠธ์˜ ๋ชจ์–‘์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ•

 

  ๊ณตํ†ต์  ์ฐจ์ด์ 
Type ์˜ค๋ธŒ์ ํŠธ์˜ ๋ชจ์–‘์„ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• ์ด๋‹ค. type ํ‚ค์›Œ๋“œ๋Š” interface ํ‚ค์›Œ๋“œ์— ๋น„ํ•ด ์ข€ ๋” ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ๋งŽ๋‹ค.
Interface interface๋Š” ์˜ค๋ธŒ์ ํŠธ์˜ ๋ชจ์–‘์„ ํŠน์ •ํ•œ๋‹ค๋Š” ์˜ค์ง ํ•œ๊ฐ€์ง€ ์šฉ๋„๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

< ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ• > : Type

type Team = 'red'| 'blue' |'yellow'
type Health = 1 | 5 | 10

type Player = {
    nickname: string,
    team: Team,
    health: Health
}

const lala: Player = {
    nickname: 'lala',
    team: 'yellow',
    health: 10
}

< ๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ• >: interface

type Team = 'red'| 'blue' |'yellow'
type Health = 1 | 5 | 10

interface Player {
    nickname: string,
    team: Team,
    health: Health
}

const lala: Player = {
    nickname: 'lala',
    team: 'yellow',
    health: 10
}

 


โœ… ์ƒ์†๋ฐ›๊ธฐ 

< Interface ํ‚ค์›Œ๋“œ๋กœ ์ƒ์† ๋ฐ›๋Š” ๋ฐฉ๋ฒ• >

extends

interface User {
    name:string
}

// Player interface๋ฅผ ๋งŒ๋“ค ๋•Œ, 
// User๋ฅผ ์ƒ์† ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. (name:string์„ ์žฌ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ !)
interface Player extends User {}

const lala : Player = {
    name: 'lala'
}

< Type ํ‚ค์›Œ๋“œ๋กœ ์ƒ์† ๋ฐ›๋Š” ๋ฐฉ๋ฒ• >

& ์—ฐ์‚ฐ์ž

type User = {
    name:string
}
// & ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
type Player = User & {}

const lala : Player = {
    name: 'lala'
}