Skip to content

Commit 673ebac

Browse files
committed
๐Ÿšฉ: ์—ฌ๋Ÿฌ ํƒ€์ž…์„ union Type์œผ๋กœ ์ง€์ •
1 parent b0c1106 commit 673ebac

File tree

1 file changed

+19
-36
lines changed

1 file changed

+19
-36
lines changed

โ€Žsrc/index.tsโ€Ž

Lines changed: 19 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,24 @@
1-
//์ ‘๊ทผ ์ œํ•œ์ž(Access modifier) - public, private, protected / es6์—์„œ๋Š” ์ ‘๊ทผ ์ œํ•œ์ž๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•˜๋‹ค ํ•˜์ง€๋งŒ ts์—์„œ๋Š” ์ œ๊ณตํ•ด์ค€๋‹ค.
1+
// Generic : ํด๋ž˜์Šค๋‚˜ ํƒ€์ž…์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ๋ฒ•
2+
// ์—ฌ๋Ÿฌ๊ฐœ์˜ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด '์œ ๋‹ˆ์˜จ ํƒ€์ž…' ๋˜๋Š” '์˜ค๋ฒ„๋กœ๋“œ'๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
23

3-
abstract class Car {
4-
color: string;
5-
constructor(color: string) {
6-
this.color = color;
7-
}
8-
start(): void {
9-
console.log("start");
10-
}
11-
abstract doSomething(): string; //์•„๋ฌด ์ž‘์—…์„ ํ•˜์ง€ ์•Š์€ ์ถ”์ƒ ํ•จ์ˆ˜ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์— ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ์—†๋‹ค๋ฉด error ๋ฐœ์ƒ
4+
function getSize(arr: number[] | string[] | boolean[] | object[]): number {
5+
return arr.length;
126
}
137

14-
// const Car = new Car("red"); //-> error : ์ถ”์ƒํด๋ž˜์Šค๋Š” new ์ธ์Šคํ„ด์Šค๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค. ์ถ”์ƒํด๋ž˜์Šค๋Š” ์ฒญ์‚ฌ์ง„๊ณผ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ค๋กœ์ง€ ์ƒ์†์„ ํ†ตํ•ด์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
8+
// number Type
9+
const arr1 = [1, 2, 3];
10+
getSize(arr1); //3
1511

16-
class Bmw extends Car {
17-
constructor(color: string) {
18-
super(color);
19-
// ์ฐธ๊ณ ๋กœ 'super()'๋Š” ๋ถ€๋ชจ(์ผ๋ฐ˜์ ์ธ super๊ฐ€ ์•„๋‹˜)์˜ constructor์— ์ ‘๊ทผ
20-
}
21-
// abstract doSomething()๊ฐ€ ์—†๋‹ค๋ฉด class๋Š” error, ์ฆ‰, ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ์ƒ์†์„ ๋ฐ›์€ ์ชฝ์—์„œ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
22-
doSomething(): string {
23-
// alert("do!"); //-> error : alert๋Š” browser์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ
24-
console.log("do!");
25-
return 'Do!';
26-
}
27-
// - private: ๋ถ€๋ชจ name์ด private์ธ ๊ฒฝ์šฐ error๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ '#name'์€ private๋กœ ์ธ์‹ํ•œ๋‹ค.
28-
// - protected: ๋ถ€๋ชจ name์ด protected์ธ ๊ฒฝ์šฐ ์ •์ƒ ๋™์ž‘ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด public๊ณผ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€.
29-
/*
30-
* new๋ฅผ ํ†ตํ•ด์„œ ์ธ์Šคํ„ด์Šค ํ–ˆ์„ ๊ฒฝ์šฐ ์ ‘๊ทผ์„ ์ œํ•œํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ์ž์‹ ํด๋ž˜์Šค์—์„œ๋Š” ๋ถ€๋ชจ ์†์„ฑ์— ์ ‘๊ทผ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ new ์ธ์Šคํ„ด์Šค์ธ ๊ฒฝ์šฐ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค.
31-
*/
32-
// - readonly: new ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ๋ณ€๊ฒฝ์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?
33-
/*
34-
* ๋ถ€๋ชจ constructor ๋‚ด๋ถ€์—์„œ ์ž‘์—…์„ ํ•ด์•ผํ•œ๋‹ค.
35-
*/
36-
// - static: static์€ ์ •์  ๋งด๋ฒ„ ๋ณ€์ˆ˜(property)๋ฅผ ๋งŒ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. static์— ์ ‘๊ทผ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” this๊ฐ€ ์•„๋‹Œ class ์ด๋ฆ„์œผ๋กœ ์ ‘๊ทผ์„ ํ•ด์•ผ ํ•œ๋‹ค.
37-
// - abstract: abstract์€ ์ถ”์ƒ ํด๋ž˜์Šค(class) ๋˜๋Š” ํ•จ์ˆ˜, ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ค€๋‹ค.
38-
}
12+
// string Type
13+
const arr2 = ["a", "b", "c"];
14+
getSize(arr2); //3
15+
16+
//ํ•˜์ง€๋งŒ ์ด๋ณด๋‹ค ๋” ์—ฌ๋Ÿฌ๊ฐœ์˜ ํƒ€์ž…์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ ํ•ด์•ผํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ์œ ๋‹ˆ์˜จ ํƒ€์ž…์œผ๋กœ ๋ชจ๋‘ ๋‹ค ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
17+
18+
// boolean Type
19+
const arr3 = [false, true, true];
20+
getSize(arr3);
3921

40-
const z4 = new Bmw("black");
41-
console.log(z4.doSomething()); //undefined๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์ด์œ  : doSomething์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด void์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
22+
// object Type
23+
const arr4 = [{}, {}, { name: 'Time' }];
24+
getSize(arr4);

0 commit comments

Comments
ย (0)