Skip to content

Commit 5841422

Browse files
committed
🚩: Generic을 μ‚¬μš©ν•œ νƒ€μž… κ°œλ…
1 parent 673ebac commit 5841422

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

β€Žsrc/index.tsβ€Ž

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
// Generic : ν΄λž˜μŠ€λ‚˜ νƒ€μž…μ„ μž¬μ‚¬μš©ν•˜κΈ° μœ„ν•œ 문법
2-
// μ—¬λŸ¬κ°œμ˜ νƒ€μž…μ„ μ‚¬μš©ν•˜λ €λ©΄ 'μœ λ‹ˆμ˜¨ νƒ€μž…' λ˜λŠ” 'μ˜€λ²„λ‘œλ“œ'λ₯Ό μ‚¬μš©ν•œλ‹€.
32

4-
function getSize(arr: number[] | string[] | boolean[] | object[]): number {
3+
// union이 μ•„λ‹Œ μ œλ„€λ¦­ <T>μ‚¬μš©ν•˜κΈ°
4+
// μ—¬κΈ°μ„œ TλŠ” μž„μ˜μ˜ νƒ€μž…μ„ λ‚˜νƒ€λ‚΄λŠ” λ³€μˆ˜μ΄λ‹€. μ œλ„€λ¦­ ν•¨μˆ˜κ°€ 호좜될 λ•Œ TλŠ” μ‹€μ œ νƒ€μž…μœΌλ‘œ λŒ€μ²΄λœλ‹€.
5+
//λ”°λΌμ„œ 이 ν•¨μˆ˜μ—μ„œ TλŠ” λ°°μ—΄(T[])의 μš”μ†Œ νƒ€μž…μ„ λ‚˜νƒ€λ‚΄λ©° 호좜 μ‹œμ μ— 이 νƒ€μž…μ΄ ꡬ체적으둜 κ²°μ •λœλ‹€.
6+
7+
function getSize<T>(arr: T[]): number {
58
return arr.length;
69
}
710

811
// number Type
9-
const arr1 = [1, 2, 3];
10-
getSize(arr1); //3
12+
// number둜 μ§€μ •λœ νƒ€μž…μ„ μ‚¬μš©ν•  μˆ˜λ„ μžˆμ§€λ§Œ μœ λ‹ˆμ˜¨μ„ μ‚¬μš©ν•΄μ„œ μ—¬λŸ¬ νƒ€μž…μ„ μ§€μ • ν• μˆ˜λ„ μžˆλ‹€.
13+
const arr1 = [1, 2, '3'];
14+
getSize<number | string>(arr1);
1115

1216
// string Type
1317
const arr2 = ["a", "b", "c"];
14-
getSize(arr2); //3
15-
16-
//ν•˜μ§€λ§Œ 이보닀 더 μ—¬λŸ¬κ°œμ˜ νƒ€μž…μ„ μ§€μ •ν•˜κ±°λ‚˜ μ‚¬μš© ν•΄μ•Όν•œλ‹€λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒ? μœ λ‹ˆμ˜¨ νƒ€μž…μœΌλ‘œ λͺ¨λ‘ λ‹€ μ§€μ •ν•˜λŠ” 것은 λ„ˆλ¬΄ 가독성이 λ–¨μ–΄μ§„λ‹€.
18+
getSize<string>(arr2);
1719

1820
// boolean Type
1921
const arr3 = [false, true, true];
20-
getSize(arr3);
22+
getSize<boolean>(arr3);
2123

2224
// object Type
2325
const arr4 = [{}, {}, { name: 'Time' }];
24-
getSize(arr4);
26+
getSize<object>(arr4);

0 commit comments

Comments
Β (0)