1. ์ธํฐํ์ด์ค ๋ฐ ์ด๊ธฐ๊ฐ ์ค์
type Score = 'A' | 'B' | 'C' | 'D' | 'F'
// 1. Interface
interface User {
name : string; // ํ์
age : number; // ํ์
gender? : string; // ์ต์
readonly birthYear : number; // ์ฝ๊ธฐ ์ ์ฉ (์์ X)
[grade : number] : Score; // ํค:number, ๊ฐ:Score ์ธ ํ๋กํผํฐ๋ฅผ ์ฌ๋ฌ๊ฐ ๋ฐ์ ์ ์์
}
// 2. Interface ๊ธฐ์ค์ผ๋ก ์ด๊ธฐ๊ฐ ์ค์
let user : User = {
name : 'xx',
age: 30,
birthYear : 2000,
1 : 'A',
2 : 'B',
}
console.log(user.age) // 30
2. ์ธํฐํ์ด์ค๋ก ํจ์ ์ ์
// 1. Interface
interface Add {
(num1: number, num2: number): number;
}
// 2. Interface๋ฅผ ์ด์ฉํด์ ํจ์ ์์ฑ
const add : Add = (x,y) => {
return x + y
}
console.log(add(3,5)) // 8
3. ์ธํฐํ์ด์ค๋ก ํด๋์ค ์ ์
// 1. Interface
interface Car {
color: string;
wheels: number;
start(): void;
}
// 2. Interface ์ด์ฉํด์ ํด๋์ค ์์ฑ
class Bmw implements Car {
color;
wheels = 4;
constructor(c:string) { // ์์ฑ๋ ๋ color๋ฅผ ์
๋ ฅ๋ฐ๊ธฐ
this.color = c;
}
start(){
console.log('go..')
}
}
const b = new Bmw('green')
console.log(b) // Bmw: { 'wheels': 4, 'color': 'green'}
b.start() // "go.."
3-1. ์ธํฐํ์ด์ค ํ์ฅ
// 1. Interface
interface Car {
color: string;
wheels: number;
start(): void;
}
// 1-2. Interface ํ์ฅ
interface Benz extends Car {
door: number;
stop(): void;
}
// 1-3. Interface ๊ธฐ์ค์ผ๋ก ์ด๊ธฐ๊ฐ ์์ฑ
const benz : Benz = {
door : 5,
color : 'black',
wheels : 4,
stop(){
console.log('stop')
},
start(){
console.log('go..')
}
}
3-2. ์ธํฐํ์ด์ค ํ์ฅ
// 1. Car Interface
interface Car {
color: string;
wheels: number;
start(): void;
}
// 2. Toy Interface
interface Toy {
name: string;
}
// 3. Car์ Toy์ ์ธํฐํ์ด์ค ํ์ฅ
interface ToyCar extends Car, Toy {
price : number;
}
'๊ฐ๋ฐ ๊ณต๋ถ > Typescript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ฉ์๋ง] typescript - 6 : ํด๋์ค (0) | 2023.03.29 |
---|---|
[์ฝ๋ฉ์๋ง] typescript - 5 : ๋ฆฌํฐ๋ด, ์ ๋์จ/๊ต์ฐจ ํ์ (0) | 2023.03.24 |
[์ฝ๋ฉ์๋ง] typescript - 4 : ํจ์ (0) | 2023.03.23 |
[์ฝ๋ฉ์๋ง] typescript - 2 : ๊ธฐ๋ณธํ์ (0) | 2023.03.21 |
[์ฝ๋ฉ์๋ง] typescript - 1 : ํ์ ์คํฌ๋ฆฝ์ ์ฐ๋ ์ด์ (0) | 2023.03.21 |