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'
}