Skip to content

Commit fcc78aa

Browse files
committed
🚩: literal types를 적용하는 방법
1 parent 212dbfd commit fcc78aa

File tree

2 files changed

+21
-30
lines changed

2 files changed

+21
-30
lines changed

src/index.ts

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,12 @@
1-
import { Benz, Car } from "./utils/data.interface";
1+
// literal Types
22

3-
//클래스 : 객체의 행동과 구조를 정의하기에 '='을 사용한다.
4-
class Bmw implements Car {
5-
color = '';
6-
constructor(color: string) {
7-
this.color = color;
8-
}
9-
wheels = 4;
10-
start() {
11-
console.log('go..');
12-
}
13-
}
3+
import { UserName } from "./utils/data.interface";
144

15-
const b = new Bmw('white');
16-
console.log(b);
17-
b.start();
5+
const userName1 = 'Bob';
6+
let userName2: string | number = 'Tom';
7+
userName2 = 3;
188

19-
//extends
20-
//객체 리터럴 : 객체를 리터럴해야하기 때문에 key, value 값으로 정의하게 되고 클래스와 달리 '='를 사용해야 한다.
21-
const benz: Benz = {
22-
color: 'black',
23-
wheels: 4,
24-
start() {
25-
console.log('go...');
26-
},
27-
door: 5,
28-
stop() {
29-
console.log('stop...');
30-
},
9+
const user: UserName = {
10+
name: "Bob",
11+
job: "developer"
3112
}

src/utils/data.interface.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ export interface userType {
88
[grade: number]: Score;
99
}
1010

11-
//함수 interface 선언 방식
1211
export interface Add {
1312
(num1: number, num2: number): number;
1413
}
@@ -17,8 +16,6 @@ export interface isAdult {
1716
(age: number): boolean;
1817
}
1918

20-
// implements
21-
2219
export interface Car {
2320
color: string;
2421
wheels: number;
@@ -37,4 +34,17 @@ interface Toy {
3734
// 동시 확장 방식
3835
interface ToyCar extends Car, Toy {
3936
price: number;
37+
}
38+
39+
type Job = "police" | "developer" | "teacher";
40+
41+
export interface UserName {
42+
name: string;
43+
job: Job;
44+
}
45+
46+
// '|' 이게 유니온 타입
47+
export interface HighSchoolStudent {
48+
name: number | string;
49+
grade: 1 | 2 | 3;
4050
}

0 commit comments

Comments
 (0)